socket.id有多独特?

时间:2014-01-07 02:35:26

标签: node.js socket.io

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

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分: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就是唯一的