Как хранить socket.id на нескольких серверах nodejs и socket.io - PullRequest
1 голос
/ 17 апреля 2019

Как лучше всего хранить socket.id пользователя на нескольких серверах?Возьмем, к примеру, простое приложение чата: если два пользователя на разных серверах отправляют сообщения друг другу, два сервера должны где-то хранить идентификатор сокета каждого пользователя, чтобы они могли отправлять сообщения от одного пользователя другому.

В настоящее время я использую хэш redis для хранения идентификатора сокета каждого пользователя (если он в сети), но это не работает, если у пользователя есть два соединения (например, у него две вкладки открытого приложения чата),Является ли лучший подход для продолжения использования Redis, но реструктурировать структуру данных таким образом, чтобы она работала, когда пользователь подключен дважды, или было бы лучше перейти на что-то вроде mongodb или mysql?

Я бы также хотел, чтобы срок действия данных истек, например, если идентификатор сокета хранится более 24 часов, его следует автоматически удалить.Я попытался сделать это с Redis, но кажется невозможным удалить только одну пару внутри хеша.Являются ли данные с истекшим сроком действия чем-то, что можно сделать в MySQL или Mongodb?

1 Ответ

0 голосов
/ 18 апреля 2019

Вы пробовали розетки?

проверьте эту ссылку для номеров и пространств имен

например, если пользователь имеет несколько соединений, присоедините его к комнате с уникальным именем (может быть, userId или что-то)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...