Node.js客户端重新连接的唯一标识符

我试图build立一个失去连接的客户重新连接程序。 在客户端JS我可以检测到连接丢失,并定期尝试重新连接到服务器。 当我重新连接,但服务器将使用一个新的套接字。

在客户端这是我的重新连接逻辑

var socket = io.connect(ip, { 'reconnect': true, //will create a new socket on the server 'reconnection delay': options.retryInterval, 'max reconnection attempts': 10 }); socket.on("disconnect", function() { this.connected = false; this.autoretry(); }); //establish the connection - similiar to the reconnect method socket.emit("connect", this.options); //.... autoretry: function() { if(this.connected) {return;}; var next = this.__retry *= this.options.retryScalar; this.socket.emit("retry", this.connect.options); return _.delay(this.autoretry, next, this); } 

问题是每个客户端都有它自己的tls连接到外部服务器,我想暂时打开这个连接, 等待客户端重新连接。

有没有一个很好的方法来唯一标识节点中的客户端,还是应该在客户端上创build标识符并将其传递给服务器?

为了识别客户端,应该使socket.io与expressjs会话一起工作,每个会话都有一个唯一的ID,并使用许多其他方法来向服务器端标识自己, (Cookie,标题..)

http://howtonode.org/socket-io-auth

当套接字对象被传递给callbackio.on('connection',function(socket)socket.id property

为了识别丢失连接的客户端,脚本尝试重新连接,请尝试侦听reconnectreconnectingreconnect_failed失败的事件。

https://github.com/LearnBoost/socket.io/wiki/Exposed-events