Django node.js socket.io - PullRequest
       5

Django node.js socket.io

1 голос
/ 19 февраля 2012

Я пытаюсь создать приложение для обмена сообщениями в реальном времени.Будет два отдельных сервера (node.js и django), и когда пользователь отправляет сообщение другому пользователю, сообщение будет сохранено в базе данных, а node.js отправит сообщение получателю наподобие «У вас новое сообщение!»Для этого я планирую вызвать URL, который служит node.js.Таким образом, node.js и django будут взаимодействовать друг с другом.И как лучше всего отправить сообщение указанному клиенту?(Я держу клиентов с их идентификаторами в ассоциативном массиве.)

что вы думаете об этом?это эффективно или вы предлагаете лучший способ сделать это?

1 Ответ

0 голосов
/ 20 февраля 2012

Теперь, когда я понимаю больше о том, что вы пытаетесь сделать, вот мой ответ, просто имейте в виду, что это только отражает мое мнение, и я держу пари, что многие другие будут спорить по этому поводу.

Все зависит от того, сколько трафика вы ожидаете иметь в своем приложении. Если это не приложение с высоким трафиком, то эффективность во время выполнения незначительна по сравнению с разработкой, поэтому выберите технологию, которая вам наиболее удобна.

Если вы нацелены на приложение с высоким трафиком, то я считаю, что эта настройка не является удачной. Прежде всего, хотя обмен данными между серверами на основе http может показаться удобным, вы сталкиваетесь с издержками http через tcp (так как http основан на tcp). И поэтому обычные сокеты tcp лучше масштабируются, но с другой стороны, если вы пишете сервер сокетов на python, вы можете запустить его из того же процесса, что и django, а затем просто использовать его как объект из django (вы входите в область темы здесь). Но это проблематично, если у вас есть несколько веб-экземпляров, опять же зависит от того, какой объем трафика вы ожидаете.

Что касается вашего выбора для реализации сервера обмена сообщениями, я никогда не тестировал node.js, но я считаю, что в тестах производительности он не сравнится с чем-то написанным в erlang или Java NIO. Например: JAVA AIO (NIO.2) VS NODEJS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...