2017-02-06 7 views
0

Folks, Можно ли создать массив на основе сеанса или в памяти или какой-либо другой технике, в которой вы можете создать пул данных, который может использоваться для всех клиентов. В принципе, мне нужно сделать приложение chat.io на основе сокета, в котором хранятся треки всех зарегистрированных пользователей. Он подталкивает этот массив пользователей loggedin ко всем клиентам или любому новому клиенту. Цените свою помощь.Экспресс, общие данные для всех подключенных клиентов

ответ

1

Вы должны настроить Socket.io-Redis или сокет-IO-MongoDB адаптер с гнездом-гипергликемии

Для отправки списка онлайновых пользователей клиента вы можете создать документ в MongoDB или Redis или MySql. Когда когда-либо socket.on («соединение») является triggerd получать идентификатор пользователя из него с помощью

var userId = socket.request.user.id; 
var socketId = socket.id; 

и сохранить его в базе данных.

Всякий раз, когда сокет отключается, удалите его из базы данных.

Когда клиент регистрируется и запрашивает онлайн-пользователей, он извлекает его из базы данных и запускает io.sockets.connected [socketId] в каждом сокете, чтобы убедиться, что сокет еще подключен и отправить список обратно клиенту.

https://github.com/socketio/socket.io-redis https://www.npmjs.com/package/socket.io-mongodb

Смежные вопросы