如何妥善处理

时间:2018-05-29 00:27:18

标签: javascript node.js websocket

我目前有一个WebSocket服务器应用程序,它处于无状态的相反极端。我想将其“无国籍化”,因为我认为这是一项挑战,因为这是正确的事情。

简而言之,无论何时客户端连接,他们都必须进行身份验证或连接被删除。经过身份验证的连接被赋予一个ID并与用户相关联,假设我有John,他已从3个位置连接并且他的用户ID 5

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

然后我有一个向特定用户广播消息的功能

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

如果我将我的users移动到其他内存存储库(例如redis或其他内容)中,我怎么知道实际连接所在的群集从属设备,以及如何向所有john的连接广播消息如果他们坐在不同的儿童过程中?我的意思是显然我没有得到任何东西,ws似乎是设计有状态的?

0 个答案:

没有答案