Push-уведомление для определенного веб-клиента в Django

Для этого вопроса у меня нет примеров кода, так как я не знаю, с чего начать.

Как использовать Django и Node для отправки уведомлений только определенному веб-клиенту?

Например, пользователь А выполняет действие. Для подтверждения указанной активности я хотел бы отправить уведомление только этому пользователю или клиенту. Может ли кто-нибудь указать мне правильные ресурсы, которые я могу использовать для создания такой системы?

ИЗМЕНИТЬ Текущая архитектура приложения

Сервер: Django Rest Framework Интерфейс: AngularJS

Планируете использовать Node для уведомлений. Единственная часть, в которой я запутался, - это отправить ее конкретному пользователю. Что мешает всем пользователям получать уведомление, предназначенное только для одного пользователя.


person Newtt    schedule 11.08.2015    source источник


Ответы (2)


Если мы говорим о веб-клиентах (браузерах), это достижимо только с использованием веб-сокетов или какой-либо технологии, основанной на Java (не Javascript) или Flash.

Я предполагаю, что вы хотите избежать Java и Flash, поэтому единственным решением здесь являются веб-сокеты.

Чтобы понять это правильно: не существует такой вещи, как чистое PUSH-уведомление (под чистым push я имею в виду, что сервер устанавливает соединение с клиентом, а не иначе). Всегда есть связь от клиента к серверу. Но использование соединения через веб-сокеты может быть постоянным, поэтому вы можете каждый раз отправлять уведомление с сервера клиенту. Это означает: для каждого клиента будет постоянное соединение, которое каким-то образом нагрузит ваш сервер. Запомни.

Есть некоторые пакеты для django, готовые к использованию, которые позволят вам создать websocket серверы. Для некоторых из них вам понадобится поддерживающий веб-сервер (например, Nginx) и сервер wsgi (например, uWSGI).

person GwynBleidD    schedule 11.08.2015

Из всех пакетов, упомянутых @GwynBleidD, я думаю, что лучшим вариантом будет http://swampdragon.net/.

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

Если вы ищете что-то более простое, я бы посмотрел на https://pusher.com/. Вы можете отправлять сообщения на конкретный клиент легко с помощью python и обрабатывает это сообщение с помощью javascript на стороне клиента. Это только одна из множества вещей, которые вы можете сделать.

person xleon    schedule 12.08.2015