Как правильно сохранять без гражданства - PullRequest
0 голосов
/ 29 мая 2018

В настоящее время у меня есть серверное приложение WebSocket, которое находится в противоположном состоянии без сохранения состояния.Я хотел бы «лишить гражданства», так как считаю это проблемой и правильным решением.

Вкратце, всякий раз, когда клиент подключается, он должен аутентифицироваться или его соединение прерывается.Подключениям, прошедшим проверку подлинности, присваивается идентификатор и они связаны с пользователем, скажем, у меня есть Джон, который подключился из 3 мест, и его идентификатор пользователя равен 5

users = {
  5: {
    name: "John",
    connections: [1, 3, 5]
  }
}

Тогда яесть функция, которая передает сообщение конкретному пользователю

function broadcast(userId, message) {
  users[userId].connections.forEach(cId => {
    connections[cId].send(message);
  });
}

Если бы я переместил свой users в какое-то другое хранилище памяти, такое как redis или что-то еще, как бы я узнал, какой кластерный подчиненный является фактическим соединением?сидя, а кроме того, как бы я передавал сообщение всем соединениям Джона, если они находятся в разных дочерних процессах?Я имею в виду, очевидно, что я не получаю что-то, ws кажется, что дизайн с состоянием?

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