fix reconnection _onChannelClosed()

This commit is contained in:
schlagmichdoch 2023-01-06 16:05:17 +01:00
parent 8b8c887458
commit d99926f657

View file

@ -303,13 +303,13 @@ class RTCPeer extends Peer {
const channel = event.channel || event.target; const channel = event.channel || event.target;
channel.binaryType = 'arraybuffer'; channel.binaryType = 'arraybuffer';
channel.onmessage = e => this._onMessage(e.data); channel.onmessage = e => this._onMessage(e.data);
channel.onclose = e => this._onChannelClosed(); channel.onclose = _ => this._onChannelClosed();
this._channel = channel; this._channel = channel;
} }
_onChannelClosed() { _onChannelClosed() {
console.log('RTC: channel closed', this._peerId); console.log('RTC: channel closed', this._peerId);
if (!this._isCaller || !this._conn) return; if (!this._isCaller) return;
this._connect(this._peerId, true); // reopen the channel this._connect(this._peerId, true); // reopen the channel
} }
@ -416,6 +416,7 @@ class PeersManager {
const peer = this.peers[peerId]; const peer = this.peers[peerId];
delete this.peers[peerId]; delete this.peers[peerId];
if (!peer || !peer._conn) return; if (!peer || !peer._conn) return;
peer._channel.onclose = null;
peer._conn.close(); peer._conn.close();
} }