commit 7194c65c74681883089d21c574275dfc01864d50
parent 0ede41f8d5397e8b7beb62ba6abe2571296f4690
Author: RobinLinus <robinlinus@users.noreply.github.com>
Date: Fri, 21 Sep 2018 20:51:56 +0200
Reconnect on rejoin room
Diffstat:
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/client/scripts/network.js b/client/scripts/network.js
@@ -4,6 +4,8 @@ class ServerConnection {
this._connect();
Events.on('beforeunload', e => this._disconnect(), false);
Events.on('pagehide', e => this._disconnect(), false);
+ document.addEventListener('visibilitychange', e => this._onVisibilityChange());
+
}
_connect() {
@@ -71,6 +73,11 @@ class ServerConnection {
clearTimeout(this._reconnectTimer);
this._reconnectTimer = setTimeout(_ => this._connect(), 5000);
}
+
+ _onVisibilityChange() {
+ if (document.hidden) return;
+ this._connect();
+ }
}
class Peer {
@@ -296,8 +303,13 @@ class RTCPeer extends Peer {
_onConnectionStateChange(e) {
console.log('RTC: state changed:', this._peer.connectionState);
switch (this._peer.connectionState) {
- case 'disconnected': this._onChannelClosed();
- break;
+ case 'disconnected':
+ this._onChannelClosed();
+ break;
+ case 'failed':
+ this._peer = null;
+ this._onChannelClosed();
+ break;
}
}