Add reconnect and reconnected events to ws

This commit is contained in:
Stefan Aebischer
2020-02-01 20:24:54 -05:00
parent 4cb36631ea
commit 90ae9984a4
2 changed files with 17 additions and 3 deletions

View File

@@ -50,7 +50,12 @@ Close the connection to the server.
### Event: 'open'
Emmited when the connection has been opened.
Emmited when the connection has been opened for the first time.
### Event: 'reconnected'
Emmited when the client has been opened after a reconnect.
### Event: 'update'
@@ -78,7 +83,12 @@ Emited when the server responds to an operation sent by the client (usually afte
### Event: 'close'
Emitted when the connection has been closed.
Emitted when the connection has been finally closed, after a call to `ws.close()`
### Event: 'reconnect'
Emitted when the connection has been closed, but the client will try to reconnect.
### Event: 'error'

View File

@@ -112,7 +112,7 @@ module.exports = class WebsocketClient extends EventEmitter {
_reconnect(timeout) {
this._teardown();
this.readyState = READY_STATE_RECONNECTING;
if(this.readyState !== READY_STATE_CONNECTING) this.readyState = READY_STATE_RECONNECTING;
setTimeout(() => {
this.logger.info('Reconnecting to server', {category: 'bybit-ws'});
@@ -147,6 +147,9 @@ module.exports = class WebsocketClient extends EventEmitter {
if(this.readyState === READY_STATE_CONNECTING) {
this.logger.info('Websocket connected', {category: 'bybit-ws', livenet: this.options.livenet});
this.emit('open');
} else if(this.readyState === READY_STATE_RECONNECTING) {
this.logger.info('Websocket reconnected', {category: 'bybit-ws', livenet: this.options.livenet});
this.emit('reconnected');
}
this.readyState = READY_STATE_CONNECTED;
@@ -177,6 +180,7 @@ module.exports = class WebsocketClient extends EventEmitter {
if(this.readyState !== READY_STATE_CLOSING) {
this._reconnect(this.options.reconnectTimeout);
this.emit('reconnect');
} else {
this.readyState = READY_STATE_INITIAL;
this.emit('close');