2012-02-19 2 views
1

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

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

+0

Что именно является целью сервера node.js? Почему вы хотите вытащить эту функциональность из django и поместить ее туда? –

+0

Природа Django не поддерживает взаимодействие с сокетами. Я знаю, что есть реализация с именем django-socketio, но я не уверен, что буду использовать ее. – Gpost

+0

Можете ли вы подробнее рассказать о том, что вы пытаетесь сделать? Это веб-приложение? Если нет, то почему Django? и если да, то какие сокеты вы имеете в виду? WebSockets? –

ответ

-1

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

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

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

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