Merge branch 'show_peer_on_channel_open' into add_device_pairing

# Conflicts:
#	client/scripts/network.js
This commit is contained in:
schlagmichdoch 2022-12-22 20:28:45 +01:00
commit fdb0bbf098
2 changed files with 17 additions and 7 deletions

View file

@ -293,6 +293,7 @@ class RTCPeer extends Peer {
_onChannelOpened(event) { _onChannelOpened(event) {
console.log('RTC: channel opened with', this._peerId); console.log('RTC: channel opened with', this._peerId);
Events.fire('peer-connected', this._peerId);
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);
@ -302,6 +303,7 @@ class RTCPeer extends Peer {
_onChannelClosed() { _onChannelClosed() {
console.log('RTC: channel closed', this._peerId); console.log('RTC: channel closed', this._peerId);
Events.fire('peer-left', this._peerId);
if (!this._isCaller) return; if (!this._isCaller) return;
this._connect(this._peerId, true); // reopen the channel this._connect(this._peerId, true); // reopen the channel
} }

View file

@ -26,8 +26,6 @@ class PeersUI {
_onPeerJoined(peer) { _onPeerJoined(peer) {
if ($(peer.id)) return; // peer already exists if ($(peer.id)) return; // peer already exists
const peerUI = new PeerUI(peer); const peerUI = new PeerUI(peer);
$$('x-peers').appendChild(peerUI.$el);
setTimeout(e => window.animateBackground(false), 1750); // Stop animation
} }
_onPeers(peers) { _onPeers(peers) {
@ -91,8 +89,18 @@ class PeerUI {
constructor(peer) { constructor(peer) {
this._peer = peer; this._peer = peer;
this._initDom(); this.callbackFunction = (e) => this._onPeerConnected(e.detail);
this._bindListeners(this.$el); 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() { _initDom() {