我正在尝试为失去连接的客户端构建重新连接过程。在客户端 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
与外部服务器的连接,我想暂时保持这个连接打开;等待查看客户端是否重新连接。
有没有一种好方法来唯一地标识节点中的客户端,或者我应该在客户端上创建标识符并将其传递给服务器?