2014-12-11 3 views
1

Я пытаюсь масштабировать с помощью экспресс-поддержки. Проблема в том, что каждый раз, когда пользователь приходит или я перезапускаю сервер, он получает новый socket.id. Кроме того, я не могу сохранить весь сокет в памяти, потому что он дает мне проблему [Circular JSON]. Как сохранить часть пакета в redis, что позволит мне получить тот же сокет с других серверов?Масштабирование express/node.js с socket.io по горизонтали с redis

ответ

3

Вам необходимо отделить пользователя от socket.id. Сокет socket.id нестабилен и может меняться даже при обновлении браузера. Вместо этого, когда пользовательский сокет подключается, взгляните на данные рукопожатия, которые передаются, и используйте это, чтобы связать сокет с пользователем. Что касается сохраняющихся данных сокета в redis, которые уже могут быть обработаны для вас, используя socket.io-redis.

Посмотрите на эту ссылку для масштабирования Socket.io: http://socket.io/docs/using-multiple-nodes

+0

У меня есть Socket.io-Redis работает, но там, кажется, практически нет документации о том, как использовать его. Есть ли ссылки, которые могут помочь? – Ridan

+0

Нельзя использовать его. Как только он настроен, он существует в фоновом режиме и гарантирует, что ваши различные узлы socket.io смогут общаться друг с другом. Настройка довольно проста: https://github.com/Automattic/socket.io-redis –

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