snapdrop

A Progressive Web App for local file sharing
git clone http://git.hanabi.in/repos/snapdrop.git
Log | Files | Refs | README | LICENSE

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:
Mclient/scripts/network.js | 16++++++++++++++--
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; } }