mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-21 15:26:17 -04:00
only show Peer when p2p channel is opened to prevent sending without open channel -> Improve stability
This commit is contained in:
parent
89b0bcc20c
commit
640266f660
2 changed files with 15 additions and 5 deletions
|
@ -293,6 +293,7 @@ class RTCPeer extends Peer {
|
|||
|
||||
_onChannelOpened(event) {
|
||||
console.log('RTC: channel opened with', this._peerId);
|
||||
Events.fire('peer-connected', this._peerId);
|
||||
const channel = event.channel || event.target;
|
||||
channel.binaryType = 'arraybuffer';
|
||||
channel.onmessage = e => this._onMessage(e.data);
|
||||
|
@ -302,7 +303,8 @@ class RTCPeer extends Peer {
|
|||
|
||||
_onChannelClosed() {
|
||||
console.log('RTC: channel closed', this._peerId);
|
||||
if (!this.isCaller) return;
|
||||
Events.fire('peer-left', this._peerId);
|
||||
if (!this._isCaller) return;
|
||||
this._connect(this._peerId, true); // reopen the channel
|
||||
}
|
||||
|
||||
|
|
|
@ -26,8 +26,6 @@ class PeersUI {
|
|||
_onPeerJoined(peer) {
|
||||
if ($(peer.id)) return; // peer already exists
|
||||
const peerUI = new PeerUI(peer);
|
||||
$$('x-peers').appendChild(peerUI.$el);
|
||||
setTimeout(e => window.animateBackground(false), 1750); // Stop animation
|
||||
}
|
||||
|
||||
_onPeers(peers) {
|
||||
|
@ -91,8 +89,18 @@ class PeerUI {
|
|||
|
||||
constructor(peer) {
|
||||
this._peer = peer;
|
||||
this.callbackFunction = (e) => this._onPeerConnected(e.detail);
|
||||
Events.on('peer-connected', this.callbackFunction);
|
||||
}
|
||||
|
||||
_onPeerConnected(peerId) {
|
||||
if (peerId === this._peer.id) {
|
||||
Events.off('peer-connected', this.callbackFunction)
|
||||
this._initDom();
|
||||
this._bindListeners(this.$el);
|
||||
$$('x-peers').appendChild(this.$el);
|
||||
setTimeout(e => window.animateBackground(false), 1750); // Stop animation
|
||||
}
|
||||
}
|
||||
|
||||
_initDom() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue