Я работаю над проектом, где я хочу внедрять уведомления в режиме реального времени для определенной группы пользователей (с ролью администратора), и после некоторых исследований я понял, что мне понадобится сеанс, чтобы узнать, какие пользователи вошли в систему (по умолчанию они анонимны).
Кроме того, мне нужно будет выполнять уведомления только для определенных пользователей. (только один пользователь, например: John Doe)
Итак, мои вопросы:
Как перенести сеанс / файл cookie на сторону NodeJS через Redis и затем передать уведомление?
Что мне делать в точности?
Любое шифрование / дешифрование?
Кто-нибудь когда-либо имел возможность реализовать что-нибудь подобное?
В Интернете почти нет информации об этом, и большинство учебных пособий слишком обычны для моего использования.
Я использую Laravel 5.1 Broadcasting для публикации некоторых уведомлений и отображения их в режиме реального времени с помощью Socket.io (версия 1.3.7). Я также использую Redis (версия 3), NodeJS (версия 5) и Express (версия 4.13).
Спасибо за прочтение!
Я выполнял (медленно) что-то подобное для веб-приложения с использованием Autobahn и WAMP , связанного с ним протокола и маршрутизатора. В настоящее время у меня около пяти различных сервисов (некоторые из них написаны на PHP, некоторые из них в NodeJS), а также клиенты, которые общаются в режиме реального времени.
Самое приятное в WAMP заключается в том, что он инкапсулирует как удаленные вызовы процедур (RPC), так и модели публикации / подписки (PubSub) для связи.
Моя схема аутентификации немного клонирована: на каждой странице веб-приложения Laravel есть значение токена, которое уникально для пользователя и генерируется при входе в приложение Laravel. Javascript использует это значение токена для аутентификации, когда клиент подключается к маршрутизатору WAMP – если это недопустимый (или устаревший) токен, соединение отклоняется.
Что касается ограничения уведомлений конкретным пользователям или группам, один простой способ сделать это – обернуть соответствующий JS-код в функцию, которая только вызывается (или выводится только клиенту в шаблоне клинка), если у пользователя есть соответствующие разрешения.
Наконец, мое приложение строго для использования внутри нашего брандмауэра, поэтому я не исследовал использование шифрования / дешифрования.