Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Чат, сокеты, редис. (https://javascript.ru/forum/node-js-io-js/73113-chat-sokety-redis.html)

kolyan1983 22.03.2018 10:27

Чат, сокеты, редис.
 
Привет.
С нодой не работал. Но стоит задача сделать в проекте чат (nodejs + api). Весь проект сделан в связке aнгулар + апи (симфони 2). В чате нода - только для реалтайма. При коннекте сокета пробрасывается токен api и нода обращается к api, чтобы определить что это за юзер и определить нужные данные (его роль, в каких он группах). Данные сохраняются в редисе. Текущая задача - при коннекте/дисконнекте пользователя отправлять нужным пользователям (не всем), что такой то пользователь появился онлайн/отключился. Т.е. нужно по socket.id пользователей определить id юзера которому они соответствуют, а по id юзера уже определять нужно или нет слать уведомление. Так вот вопрос: как мне хранить соответствие socket.id => user.id ? Если я храню такую структуру в редисе - то при падении ноды и новом запуске все сокеты переоткрываются с новыми socket.id и получается, что в редисе остаются старые неактуальные записи в которых ключ - socket.id. Не хотелось бы, чтобы там копились мертвые данные. Как поступают в таких случаях? Спасибо.


Часовой пояс GMT +3, время: 04:54.