2015-09-18 2 views
2

Я хочу, чтобы в подключаемых устройствах сокетов не было подключенных пользователей, и у меня есть несколько серверов socket.io.Получить общее количество. Связанные пользователи в комнате в Socket.io + несколько процессов/кластера

Для. когда user1 подключается к и присоединяется номер room1

Ниже заявления возвратов дает список подключенных пользователей

затем

io.nsps['/'].adapter.rooms["room1"] 

или

io.sockets.adapter.rooms["room1"] 

А также я пробовал много других решений, имеющихся на SO и Google.

Но когда я использую вышеуказанные заявления в server2, он ничего не возвращает.

Как я могу получить нет подключенного пользователя на всем сервере для конкретной комнаты?

Я использую модуль socket.io-redis для связи между несколькими процессами.

+0

Кто-нибудь? Пожалуйста. –

ответ

0

Если вы хотите поделиться сеансами/номерами и т. Д., Вам, вероятно, придется использовать redis.

Здесь есть документ для использования нескольких узлов (это то, что у вас есть, насколько я понимаю), и использовать redis для передачи событий между одним и другими узлами. http://socket.io/docs/using-multiple-nodes/#passing-events-between-nodes

И да, чтобы проверить сеансы в одной комнате, необходимо следующее: io.nsps['/'].adapter.rooms["room1"].

К сожалению, теперь просто прочитайте, что уже говорилось об использовании socket.io-redis. Если он настроен правильно, он должен работать, по крайней мере, для меня.

+0

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

+0

socket.io-redis настроен правильно. Также, если я отправляю сообщение в определенную комнату из другого процесса, весь процесс получает сообщение. Так что это нормально работает –

+0

Привет Хирен, можете ли вы объяснить нам, как вы настроили свой socket.io-redis? Я пытаюсь подключить клиентов к комнате в моем кластере, и я не смог. –

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