UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

1 lines 658 B
export class IceTupleChangeDetector{pcMonitor;name="ice-tuple-change-detector";constructor(t){this.pcMonitor=t}tuples=new Set;update(){if(this.pcMonitor.closed)return;const t=this.pcMonitor.selectedIceCandidatePairs,e=0===this.tuples.size;let o=!1;const s=new Set;for(const e of t){const t=e.getLocalCandidate(),i=e.getRemoteCandidate(),n=`${t?.address}:${t?.port}:${i?.address}:${i?.port}:${t?.protocol}`;s.add(n),this.tuples.has(n)||(o=!0,this.tuples.add(n))}for(const t of this.tuples)s.has(t)||(o=!0,this.tuples.delete(t));!e&&o&&this.pcMonitor.parent.emit("ice-tuple-changed",{clientMonitor:this.pcMonitor.parent,peerConnectionMonitor:this.pcMonitor})}}