Как использовать NowJS для предоставления уведомлений пользователю в рамках django - PullRequest
0 голосов
/ 01 марта 2012

Я построил веб-сайт в рамках Django. Он имеет множество функций, таких как блог, дискуссионный форум, в основном есть много способов взаимодействия пользователей. Я создал базовую структуру уведомлений, в которой пользователь получает уведомление, когда кто-то комментирует его блог или отвечает на его вопрос на форуме.

Поскольку уведомления хранятся в БД, новые уведомления отображаются только после обновления страницы. Я хотел бы сделать это в режиме реального времени, используя некоторый push-сервер, используя что-то вроде техники длинных опросов.

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

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

Я могу выяснить все остальные части, кроме как получить доступ к базе данных с сервера Node, который используется NowJS. Любая помощь или руководство приветствуется.

1 Ответ

1 голос
/ 01 марта 2012

Или:

  1. Пусть ваш сервер node.js сделает http-вызов серверу Django через что-то вроде REST API, чтобы получить информацию обратно
  2. Google для соединителя базы данных для node.js - я нашел достаточно доказательств для MySQL и слухов о PostgreSQL. Обратите внимание, что это не даст вам доступа к API Django DB, поэтому вам придется обрабатывать все связанные запросы и создавать свой SQL вручную (убедитесь, что Bobby Tables вас не беспокоит: http://www.xkcd.com/327)
  3. Повторно внедрите протокол NowJS, чтобы вы могли написать для него сервер django, оставив тот же код JS-клиента на клиентах ... но тогда вы тоже можете .....

... используйте django-socketio http://blog.jupo.org/2011/08/13/real-time-web-apps-with-django-and-websockets/

...