接続を失ったクライアントの再接続手順を構築しようとしています。クライアント 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
外部サーバーへの独自の接続を持っていることです。この接続を短時間開いたままにしたいと思います。クライアントが再接続するかどうかを確認するのを待っています。
ノードでクライアントを一意に識別する良い方法はありますか、それともクライアントで識別子を作成してサーバーに渡す必要がありますか?