snapdrop

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

commit 6317c25b10f3d885c8ccc3374fb1e873e2c18f44
parent e9eeea48e5ea76214971daa1a879b0ae2ba1a196
Author: RobinLinus <robinlinus@users.noreply.github.com>
Date:   Fri, 21 Sep 2018 19:14:25 +0200

Cleanup; fix STUN servers

Diffstat:
Mclient/scripts/network.js | 31++++++++++++++++---------------
Mclient/scripts/ui.js | 3++-
Mserver/index.js | 2+-
3 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/client/scripts/network.js b/client/scripts/network.js @@ -10,7 +10,7 @@ class ServerConnection { if (this._isConnected()) return const ws = new WebSocket(this._endpoint()); ws.binaryType = 'arraybuffer'; - ws.onopen = e => console.log('WS: server connection opened'); + ws.onopen = e => console.log('WS: server connected'); ws.onmessage = e => this._onMessage(e.data); ws.onclose = e => this._onDisconnect(); ws.onerror = e => console.error(e); @@ -18,7 +18,7 @@ class ServerConnection { clearTimeout(this._reconnectTimer); } - _isConnected(){ + _isConnected() { return this._socket && this._socket.readyState === this._socket.OPEN; } @@ -243,7 +243,7 @@ class RTCPeer extends Peer { _createChannel() { const channel = this._peer.createDataChannel('data-channel', { reliable: true }); channel.binaryType = 'arraybuffer'; - channel.onopen = e => this._onChannelOpened(e) + channel.onopen = e => this._onChannelOpened(e); this._peer.createOffer(d => this._onDescription(d), e => this._onError(e)); } @@ -466,16 +466,17 @@ window.isRtcSupported = !!(window.RTCPeerConnection || window.mozRTCPeerConnecti RTCPeer.config = { 'iceServers': [{ - urls: 'stun:stun.stunprotocol.org:3478' - }, { - urls: 'stun:stun.l.google.com:19302' - }, { - urls: 'turn:turn.bistri.com:80', - credential: 'homeo', - username: 'homeo' - }, { - urls: 'turn:turn.anyfirewall.com:443?transport=tcp', - credential: 'webrtc', - username: 'webrtc' - }] + urls: 'stun:stun.stunprotocol.org:3478' + }, { + urls: 'stun:stun.l.google.com:19302' + }, { + url: 'turn:192.158.29.39:3478?transport=tcp', + credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', + username: '28224511:1379330808' + }, { + urls: 'turn:turn.anyfirewall.com:443?transport=tcp', + credential: 'webrtc', + username: 'webrtc' + } + ] } \ No newline at end of file diff --git a/client/scripts/ui.js b/client/scripts/ui.js @@ -335,8 +335,8 @@ class Notifications { constructor() { // Check if the browser supports notifications if (!('Notification' in window)) return; + // Check whether notification permissions have already been granted - if (Notification.permission !== 'granted') { this.$button = $('notification'); this.$button.removeAttribute('hidden'); @@ -364,6 +364,7 @@ class Notifications { vibrate: [200, 100, 200, 100, 200, 100, 400], } if (serviceWorker && serviceWorker.showNotification) { + // android doesn't support "new Notification" if service worker is installed return serviceWorker.showNotification(message, config); } else { return new Notification(message, config); diff --git a/server/index.js b/server/index.js @@ -84,7 +84,7 @@ class SnapdropServer { _leaveRoom(peer) { // delete the peer this._cancelKeepAlive(peer); - if (!this._rooms[peer.ip]) return; + if (!this._rooms[peer.ip] || !this._rooms[peer.ip][peer.id]) return; delete this._rooms[peer.ip][peer.id];