As a workaround in Firefox, you can use getStats to determine if packages are stopping:
var findStat = (m, type) => [...m.values()].find(s => s.type == type && !s.isRemote); var hasConnected = new Promise(resolve => pc.oniceconnectionstatechange = e => pc.iceConnectionState == "connected" && resolve()); var hasDropped = hasConnected.then(() => new Promise(resolve => { var lastPackets = countdown = 0, timeout = 3;
Here is a demo: https://jsfiddle.net/4rzhe7n8/
source share