【问题标题】:What happens to socket IDs when Node.js server restarts?当 Node.js 服务器重新启动时,套接字 ID 会发生什么情况?
【发布时间】:2014-06-12 08:30:40
【问题描述】:

我将 Node.js 与 socket.io 一起用于多人游戏。有游戏室,玩家可以加入不同的房间。这部分工作正常。

现在,我想为 Node 服务器因任何原因而崩溃的可能性做好准备。我有 Node 将数据备份到 Redis,如果它崩溃了,它会自动重启,从 Redis 取回数据并继续正常运行。

这就是我想要的,但我对一件事感到困惑。既然每个socket都是由它的ID来标识的,那么重启后服务器怎么知道哪个用户订阅了哪个房间呢?套接字 ID 仍然有效吗?还是需要以某种方式重新分配它们(可能基于唯一的用户 ID)?

【问题讨论】:

    标签: javascript node.js sockets socket.io


    【解决方案1】:

    说实话,我从未使用过 socket.io,但我使用过 sockjs。我不知道实现上有什么区别,但是 sockjs 也有每个连接都由它自己的 ID 标识(据我所知,这是一个 UUID)。但是每次用户重新连接时ID都会改变,所以我认为这不是识别用户的有用方法。

    也许您应该存储一些固定的用户标识(例如电子邮件地址、用户名)并通过该参数重新定位用户(这就是我通常所做的)。

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多