@observertc/client-monitor-js
Version:
ObserveRTC Client Integration Javascript Library
158 lines (157 loc) • 7.88 kB
TypeScript
import EventEmitter from 'eventemitter3';
import { ClientMonitor } from "../ClientMonitor";
import { Detectors } from "../detectors/Detectors";
import * as W3C from "../schema/W3cStatsIdentifiers";
import { Logger } from "../utils/logger";
import { InboundRtpMonitor } from "./InboundRtpMonitor";
import { RemoteOutboundRtpMonitor } from "./RemoteOutboundRtpMonitor";
import { OutboundRtpMonitor } from "./OutboundRtpMonitor";
import { RemoteInboundRtpMonitor } from "./RemoteInboundRtpMonitor";
import { MediaSourceMonitor } from "./MediaSourceMonitor";
import { CodecMonitor } from "./CodecMonitor";
import { MediaPlayoutMonitor } from "./MediaPlayoutMonitor";
import { PeerConnectionTransportMonitor } from "./PeerConnectionTransportMonitor";
import { IceTransportMonitor } from "./IceTransportMonitor";
import { IceCandidateMonitor } from "./IceCandidateMonitor";
import { IceCandidatePairMonitor } from "./IceCandidatePairMonitor";
import { CertificateMonitor } from "./CertificateMonitor";
import { DataChannelMonitor } from "./DataChannelMonitor";
import { InboundTrackMonitor } from "./InboundTrackMonitor";
import { OutboundTrackMonitor } from "./OutboundTrackMonitor";
import { CalculatedScore } from "../scores/CalculatedScore";
import { StatsCollector } from "../collectors/StatsCollector";
import { StatsAdapters } from "../adapters/StatsAdapters";
import { SelectedIcePath } from "./SelectedIcePath";
import { PeerConnectionSample, PeerConnectionTransportStats } from "../schema/ClientSample";
export type PeerConnectionMonitorEvents = {
'close': [];
'update': [];
'stats': [W3C.RtcStats[]];
};
export declare class PeerConnectionMonitor extends EventEmitter<PeerConnectionMonitorEvents> {
readonly peerConnectionId: string;
readonly statsCollector: StatsCollector;
readonly parent: ClientMonitor;
private readonly logger;
attachments?: Record<string, unknown> | undefined;
readonly statsAdapters: StatsAdapters;
readonly detectors: Detectors;
readonly mappedCodecMonitors: Map<string, CodecMonitor>;
readonly mappedInboundRtpMonitors: Map<number, InboundRtpMonitor>;
readonly mappedRemoteOutboundRtpMonitors: Map<number, RemoteOutboundRtpMonitor>;
readonly mappedOutboundRtpMonitors: Map<number, OutboundRtpMonitor>;
readonly mappedDataChannelMonitors: Map<string, DataChannelMonitor>;
readonly mappedRemoteInboundRtpMonitors: Map<number, RemoteInboundRtpMonitor>;
readonly mappedMediaSourceMonitors: Map<string, MediaSourceMonitor>;
readonly mappedMediaPlayoutMonitors: Map<string, MediaPlayoutMonitor>;
readonly mappedPeerConnectionTransportMonitors: Map<string, PeerConnectionTransportMonitor>;
readonly mappedIceTransportMonitors: Map<string, IceTransportMonitor>;
readonly mappedIceCandidateMonitors: Map<string, IceCandidateMonitor>;
readonly mappedIceCandidatePairMonitors: Map<string, IceCandidatePairMonitor>;
readonly mappedCertificateMonitors: Map<string, CertificateMonitor>;
readonly mappedSelectedIcePaths: Map<string, SelectedIcePath>;
private readonly _pendingMediaStreamTracks;
readonly mappedInboundTracks: Map<string, InboundTrackMonitor>;
readonly mappedOutboundTracks: Map<string, OutboundTrackMonitor>;
closed: boolean;
sendingAudioBitrate: number;
sendingVideoBitrate: number;
receivingAudioBitrate: number;
receivingVideoBitrate: number;
outboundFractionLost: number;
inboundFractionalLost: number;
totalInboundPacketsLost: number;
totalInboundPacketsReceived: number;
totalOutboundPacketsSent: number;
totalOutboundPacketsReceived: number;
totalOutboundPacketsLost: number;
totalDataChannelBytesSent: number;
totalDataChannelBytesReceived: number;
totalSentAudioBytes: number;
totalSentVideoBytes: number;
totalReceivedAudioBytes: number;
totalReceivedVideoBytes: number;
totalAvailableIncomingBitrate: number;
totalAvailableOutgoingBitrate: number;
deltaInboundPacketsLost: number;
deltaInboundPacketsReceived: number;
deltaOutboundPacketsSent: number;
deltaOutboundPacketsReceived: number;
deltaOutboundPacketsLost: number;
deltaAudioBytesSent: number;
deltaVideoBytesSent: number;
deltaAudioBytesReceived: number;
deltaVideoBytesReceived: number;
deltaDataChannelBytesReceived: number;
deltaDataChannelBytesSent: number;
highestSeenSendingBitrate?: number;
highestSeenReceivingBitrate?: number;
highestSeenAvailableOutgoingBitrate?: number;
highestSeenAvailableIncomingBitrate?: number;
congested: boolean;
iceRttInSec?: number;
ewmaIceRttInSec?: number;
rtcpRttInSec?: number;
ewmaRtcpRttInSec?: number;
connectingStartedAt?: number;
connectedAt?: number;
private _connectionState?;
iceState?: W3C.RtcIceTransportState;
usingTURN?: boolean;
usingTCP?: boolean;
calculatedStabilityScore: CalculatedScore;
appData?: Record<string, unknown> | undefined;
constructor(peerConnectionId: string, statsCollector: StatsCollector, parent: ClientMonitor, logger: Logger, attachments?: Record<string, unknown> | undefined);
get avgRttInSec(): number | undefined;
get ewmaRttInSec(): number | undefined;
get score(): number | undefined;
get scoreReasons(): Record<string, number> | undefined;
get receivingBitrate(): number;
get sendingBitrate(): number;
get tracks(): (InboundTrackMonitor | OutboundTrackMonitor)[];
on<K extends keyof PeerConnectionMonitorEvents>(event: K, listener: (...args: PeerConnectionMonitorEvents[K]) => void): this;
once<K extends keyof PeerConnectionMonitorEvents>(event: K, listener: (...args: PeerConnectionMonitorEvents[K]) => void): this;
off<K extends keyof PeerConnectionMonitorEvents>(event: K, listener: (...args: PeerConnectionMonitorEvents[K]) => void): this;
emit(event: keyof PeerConnectionMonitorEvents, ...args: PeerConnectionMonitorEvents[typeof event]): boolean;
collect(): Promise<W3C.RtcStats[]>;
accept(stats: W3C.RtcStats[]): void;
private _acceptAdaptedStats;
createSample(): PeerConnectionSample;
addMediaStreamTrack(track: MediaStreamTrack, attachments?: Record<string, unknown>): void;
get codecs(): CodecMonitor[];
get inboundRtps(): InboundRtpMonitor[];
get remoteOutboundRtps(): RemoteOutboundRtpMonitor[];
get outboundRtps(): OutboundRtpMonitor[];
get remoteInboundRtps(): RemoteInboundRtpMonitor[];
get mediaSources(): MediaSourceMonitor[];
get mediaPlayouts(): MediaPlayoutMonitor[];
get dataChannels(): DataChannelMonitor[];
get peerConnectionTransports(): PeerConnectionTransportMonitor[];
get iceTransports(): IceTransportMonitor[];
get iceCandidates(): IceCandidateMonitor[];
get iceCandidatePairs(): IceCandidatePairMonitor[];
get certificates(): CertificateMonitor[];
get selectedIcePaths(): SelectedIcePath[];
get selectedIcePath(): SelectedIcePath | undefined;
get selectedIceCandidatePairs(): IceCandidatePairMonitor[];
set connectionState(state: W3C.RtcPeerConnectionState | undefined);
get connectionState(): W3C.RtcPeerConnectionState | undefined;
private _updateSelectedIcePaths;
private _checkVisited;
close(): void;
private _updateCodec;
private _updateInboundRtp;
private _updateDataChannel;
private _updateRemoteOutboundRtp;
private _updateOutboundRtp;
private _updateRemoteInboundRtp;
private _updateMediaSource;
private _updateMediaPlayout;
_updatePeerConnectionTransport(input: Partial<PeerConnectionTransportStats>): PeerConnectionTransportMonitor | undefined | void;
private _updateIceTransport;
private _updateIceCandidate;
private _updateIceCandidatePair;
private _updateCertificate;
private _createOutboundTrackMonitor;
private _createInboundTrackMonitor;
}