reconnecter split events and add destroy.

This commit is contained in:
Miroslav Šedivý 2021-07-15 22:36:52 +02:00
parent a38ad13fb1
commit f9c096b272

View File

@ -57,7 +57,11 @@ export class Reconnecter extends EventEmitter<ReconnecterEvents> {
...config,
}
this._conn.on('connect', () => {
this._conn.on('connect', this.onConnect)
this._conn.on('disconnect', this.onDisconnect)
}
private onConnect() {
if (this._timeout) {
window.clearTimeout(this._timeout)
this._timeout = undefined
@ -71,9 +75,9 @@ export class Reconnecter extends EventEmitter<ReconnecterEvents> {
} else {
this._conn.disconnect()
}
})
}
this._conn.on('disconnect', () => {
private onDisconnect() {
if (this._timeout) {
window.clearTimeout(this._timeout)
this._timeout = undefined
@ -85,7 +89,6 @@ export class Reconnecter extends EventEmitter<ReconnecterEvents> {
this.emit('disconnect')
this.reconnect()
}
})
}
public get isOpen(): boolean {
@ -158,4 +161,9 @@ export class Reconnecter extends EventEmitter<ReconnecterEvents> {
this.close(new Error('reconnection failed'))
}
}
public destroy() {
this._conn.off('connect', this.onConnect)
this._conn.off('disconnect', this.onDisconnect)
}
}