Масштабирование express/node.js с socket.io по горизонтали с помощью redis

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

1 ответ

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

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

Другие вопросы по тегам