2013-11-22 3 views
5

Использование адаптера/store (?) Socket.io redisstore, возможно ли «видеть» всех клиентов и «выбирать» даже клиента, который напрямую не подключен к вашему серверу socket.io? Или это ограничено функциональностью «комнат» только socket.io?Socket.io redisstore

Чтобы дать практический пример, два пользователя в одной комнате чата подключены к двум различным узлам socket.io, делает ли адаптер/хранилище redisstore возможность шепотом от одного пользователя к другому без огромных изменений кода если у вас уже есть работающий единый процесс/серверная реализация?

Причина, по которой я прошу, состоит в том, что я еще не на этапе разработки моего проекта, который слишком сильно интересуется масштабированием (и у меня нет времени погрузиться в концепции масштабирования node.js, которые выглядят совсем по-другому от того, к чему я привык (сначала полный проект blown node.js)), , но Мне не нравится создание инфраструктуры, которая оказывается невозможной для масштабирования.

+0

Если вы используете кластеры узлов, вы, вероятно, также будете использовать что-то вроде clusterhub и, возможно, [socket.io clusterhub] (https://github.com/fent/socket.io-clusterhub) для обмена данными через кластеры, а затем это уже не проблема, но насколько я знаю, вам все равно придется использовать комнаты для идентификации пользователей и т. д. – adeneo

ответ

1

Магазин Redis (/lib/stores/redis.js) работает только с redis pub-sub для распространения сообщений между серверами. Поэтому, если вы хотите получить список подключенных пользователей, вы должны сделать это сами.

Но если вы хотите передавать сообщения между двумя пользователями - я думаю, что это не будет проблемой для стандартной библиотеки socket.io + redis, потому что redis pub-sub очень полезен для передачи сообщений между серверами \ процессами.

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