【问题标题】:How unique is socket.id?socket.id 有多独特?
【发布时间】:2014-01-24 14:59:15
【问题描述】:

我正在构建一个应用程序,在该应用程序运行期间,我希望每个连接都有一个唯一标识符,我想知道 socket.id 是否适用于此。例如。如果用户 1 与应用程序断开连接,则稍后连接的用户 2 不应具有与用户 1 之前相同的 socket.id,即使用户 1 不再连接也是如此。在 socket.io 监听服务器的整个过程中,socket id 是唯一的吗?

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    假设您正在使用socket.io@0.9.x(这是 NPM 中的当前版本),为每个连接/客户端 can be found here 生成新 id 的代码。

    我认为您可以放心地假设每个套接字 id 都是唯一的。

    【讨论】:

      【解决方案2】:

      查看 socket.io 的代码,似乎用户的 id 唯一标识了一个套接字客户端。例如,参见Socket.connect 的代码:

      Socket.prototype.onconnect = function(){
        debug('socket connected - writing packet');
        this.join(this.id);
        this.packet({ type: parser.CONNECT });
        this.nsp.connected[this.id] = this;
      };
      

      在最后一行,id 用于跟踪已连接套接字的哈希。由于您需要您的 id 是唯一的,因此只要服务器没有重新启动,每个 id 都是唯一的

      【讨论】:

      • 但这并不表明 id 不会被回收,这是 OP 想知道的。
      猜你喜欢
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2011-04-27
      • 1970-01-01
      • 2012-09-06
      相关资源
      最近更新 更多