From 5c924ad1543d8b903d11a21f0009c64b37834f11 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Wed, 13 May 2020 15:46:26 -0600 Subject: [PATCH] eventually deletes elements --- public/webrtc.js | 54 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/public/webrtc.js b/public/webrtc.js index 9decfd4..cce21fb 100755 --- a/public/webrtc.js +++ b/public/webrtc.js @@ -77,19 +77,6 @@ class View { } } -class Remote { - element = null; - - constructor(id, stream) { - document.getElementById("remote").innerHTML += ` - - `; - this.element = document.getElementById(id); - this.element.srcObject = stream; - View.log(this.element); - } -} - class Preview { element = null; @@ -97,10 +84,6 @@ class Preview { this.element = document.getElementById(id); this.element.srcObject = stream; } - - destructor() { - this.element.remove(); - } } class Server { @@ -112,6 +95,23 @@ class Server { } } +class Remote { + element = null; + + constructor(id, stream) { + document.getElementById("remote").innerHTML += ` + + `; + this.element = document.getElementById(id); + this.element.srcObject = stream; + } + + destructor() { + View.log("destructor called"); + this.element.remove(); + } +} + class Peer { peer = null; streams = {}; @@ -126,17 +126,17 @@ class Peer { event.streams.forEach((stream) => { this.streams[stream.id] = new Remote(stream.id, stream); }); - View.log("/ontrack:", this.streams); }; - this.peer.onremovestream = (event) => { - event.streams.forEach((stream) => { - this.streams[stream.id].destructor(); - delete this.streams[stream.id]; - }); - View.log("/onremovestream:", this.streams); - }; - this.peer.onconnectionstatechange = (event) => { - View.log("/onconnectionstatechange:", this.streams, this.peer.connectionState); + this.peer.oniceconnectionstatechange = (event) => { + switch (this.peer.iceConnectionState) { + case "disconnected": + case "failed": + case "closed": + for (var k in this.streams) { + this.streams[k].destructor(); + delete this.streams[k]; + } + } }; this.peer.addStream(stream); }