UNPKG

@observertc/client-monitor-js

Version:

ObserveRTC Client Integration Javascript Library

1 lines 1.98 kB
export class IceTransportMonitor{_peerConnection;_visited=!0;timestamp;id;packetsSent;packetsReceived;bytesSent;bytesReceived;iceRole;iceLocalUsernameFragment;dtlsState;iceState;selectedCandidatePairId;localCertificateId;remoteCertificateId;tlsVersion;dtlsCipher;dtlsRole;srtpCipher;selectedCandidatePairChanges;deltaPacketsSent;deltaPacketsReceived;deltaBytesSent;deltaBytesReceived;sendingBitrate;receivingBitrate;attachments;appData;constructor(e,t){this._peerConnection=e,this.id=t.id,this.timestamp=t.timestamp,Object.assign(this,t)}get visited(){const e=this._visited;return this._visited=!1,e}getPeerConnection(){return this._peerConnection}getSelectedCandidatePair(){return this._peerConnection.mappedIceCandidatePairMonitors.get(this.selectedCandidatePairId??"")}accept(e){this._visited=!0;const t=e.timestamp-this.timestamp,i=t/1e3;t<=0||(this.packetsSent&&e.packetsSent&&(this.deltaPacketsSent=e.packetsSent-this.packetsSent),this.packetsReceived&&e.packetsReceived&&(this.deltaPacketsReceived=e.packetsReceived-this.packetsReceived),this.bytesSent&&e.bytesSent&&(this.deltaBytesSent=e.bytesSent-this.bytesSent,this.sendingBitrate=8*this.deltaBytesSent/i),this.bytesReceived&&e.bytesReceived&&(this.deltaBytesReceived=e.bytesReceived-this.bytesReceived,this.receivingBitrate=8*this.deltaBytesReceived/i),Object.assign(this,e))}createSample(){return{id:this.id,timestamp:this.timestamp,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,iceRole:this.iceRole,iceLocalUsernameFragment:this.iceLocalUsernameFragment,dtlsState:this.dtlsState,iceState:this.iceState,selectedCandidatePairId:this.selectedCandidatePairId,localCertificateId:this.localCertificateId,remoteCertificateId:this.remoteCertificateId,tlsVersion:this.tlsVersion,dtlsCipher:this.dtlsCipher,dtlsRole:this.dtlsRole,srtpCipher:this.srtpCipher,selectedCandidatePairChanges:this.selectedCandidatePairChanges,attachments:this.attachments}}}