mirror of
https://github.com/Xahau/xahau.js.git
synced 2026-06-03 00:36:42 +00:00
Add server activity check / reconnect defunct servers
This commit is contained in:
@@ -43,6 +43,15 @@ function Server(remote, opts) {
|
||||
this.on('response_subscribe', function(message) {
|
||||
self._handleResponseSubscribe(message);
|
||||
});
|
||||
|
||||
function checkServerActivity() {
|
||||
var delta = Date.now() - self._lastLedgerClose;
|
||||
if (delta > (1000 * 20)) {
|
||||
self.reconnect();
|
||||
}
|
||||
};
|
||||
|
||||
setInterval(checkServerActivity, 1000);
|
||||
};
|
||||
|
||||
util.inherits(Server, EventEmitter);
|
||||
@@ -235,6 +244,15 @@ Server.prototype.disconnect = function() {
|
||||
if (this._ws) this._ws.close();
|
||||
};
|
||||
|
||||
/**
|
||||
* Reconnect to rippled WebSocket server
|
||||
*/
|
||||
|
||||
Server.prototype.reconnect = function() {
|
||||
this.disconnect();
|
||||
this.connect();
|
||||
};
|
||||
|
||||
/**
|
||||
* Submit a Request object.
|
||||
*
|
||||
@@ -314,6 +332,10 @@ Server.prototype._handleMessage = function(message) {
|
||||
this._setState(~(Server._onlineStates.indexOf(message.server_status)) ? 'online' : 'offline');
|
||||
break;
|
||||
|
||||
case 'ledgerClosed':
|
||||
this._lastLedgerClose = Date.now();
|
||||
break;
|
||||
|
||||
case 'path_find':
|
||||
this._remote._trace('server: path_find: %s', message);
|
||||
break;
|
||||
@@ -352,7 +374,7 @@ Server.prototype._handleMessage = function(message) {
|
||||
*/
|
||||
|
||||
Server.prototype._handleResponseSubscribe = function(message) {
|
||||
if (Server.onlineStates.indexOf(message.server_status)) {
|
||||
if (~(Server.onlineStates.indexOf(message.server_status))) {
|
||||
this._setState('online');
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user