У меня есть кластер узлов, который использует Socket.io для системы чата в реальном времени, и socket.io-redis для сохранения сокетов на всех внутренних серверах.
Мне нужно разрешить пользователю клиентский интерфейс, чтобы выбрать другого пользователя и отправить ему сообщение. Моя проблема заключается в том, что на сервере узла нет способа получить сокет выбранного пользователя, учитывая только его имя пользователя, et c.
В экземпляре одного узла это можно исправить с помощью объекта clients
, используя в качестве ключей что-то вроде имен пользователей, но как это будет работать на нескольких серверах? Предоставляет ли socket.io-redis некоторую поддержку этой нестандартной конфигурации, которую я только что пропустил?
В этом сообщении (node.js хранить объекты в redis ) упоминается возможность сохранения строковых объектов сокета в качестве ключа redis, но ответы неубедительны.
Есть ли какое-нибудь масштабируемое оптимальное решение для этого?