fix reconnection _onChannelClosed()

This commit is contained in:
schlagmichdoch 2023-01-06 16:19:45 +01:00
commit 6c4b7b893a

View file

@ -79,7 +79,7 @@ class ServerConnection {
console.log('WS: server disconnected');
Events.fire('notify-user', 'Connection lost. Retry in 5 seconds...');
clearTimeout(this._reconnectTimer);
this._reconnectTimer = setTimeout(_ => this._connect(), 5000);
this._reconnectTimer = setTimeout(this._connect, 5000);
Events.fire('disconnect');
}
@ -322,14 +322,14 @@ class RTCPeer extends Peer {
const channel = event.channel || event.target;
channel.binaryType = 'arraybuffer';
channel.onmessage = e => this._onMessage(e.data);
channel.onclose = e => this._onChannelClosed();
channel.onclose = _ => this._onChannelClosed();
this._channel = channel;
}
_onChannelClosed() {
console.log('RTC: channel closed', this._peerId);
Events.fire('peer-disconnected', this._peerId);
if (!this._isCaller || !this._conn) return;
if (!this._isCaller) return;
this._connect(this._peerId, true); // reopen the channel
}
@ -443,6 +443,7 @@ class PeersManager {
const peer = this.peers[peerId];
delete this.peers[peerId];
if (!peer || !peer._conn) return;
peer._channel.onclose = null;
peer._conn.close();
}