Я пытаюсь построить процедуру повторного подключения для клиентов, которые теряют соединение. В клиенте js я могу обнаружить, когда соединение потеряно, и периодически пытайтесь подключиться к серверу. Когда я снова подключусь, сервер будет использовать новый сокет.Уникальный идентификатор Node.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
подключение к внешнему серверу, и я хотел бы провести это соединение открытым в течение короткого периода времени; ожидая, восстановится ли клиент.
Есть ли способ однозначно идентифицировать клиента в узле или я должен создать идентификатор на клиенте и передать его на сервер?
Есть ли способ, чтобы определить Reconnecting на сервере, потому что его по-прежнему создает новый сокет с другой 'id' – megawac
Найдено мой ответ: http://stackoverflow.com/questions/9668996/does -socket-io-reconnects-re-run-connect, чтобы создать уникальный идентификатор клиента в браузере. – megawac