@observertc/observer-js
Version:
Server Side NodeJS Library for processing ObserveRTC Samples
127 lines • 5.12 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { ObservedPeerConnection } from './ObservedPeerConnection';
import { ClientEvent, ClientMetaData, ClientSample, ClientIssue, ExtensionStat } from './schema/ClientSample';
import * as MetaData from './schema/ClientMetaTypes';
import { ObservedCall } from './ObservedCall';
import { CalculatedScore } from './scores/CalculatedScore';
import { Detectors } from './detectors/Detectors';
export type ObservedClientSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
clientId: string;
appData?: AppData;
};
export type ObservedClientEvents = {
update: [sample: ClientSample, elapsedTimeInMs: number];
close: [];
joined: [];
issue: [ClientIssue];
metaData: [ClientMetaData];
rejoined: [timestamp: number];
left: [];
usingturn: [boolean];
usermediaerror: [string];
extensionStats: [ExtensionStat];
clientEvent: [ClientEvent];
newpeerconnection: [ObservedPeerConnection];
};
export declare interface ObservedClient {
on<U extends keyof ObservedClientEvents>(event: U, listener: (...args: ObservedClientEvents[U]) => void): this;
off<U extends keyof ObservedClientEvents>(event: U, listener: (...args: ObservedClientEvents[U]) => void): this;
once<U extends keyof ObservedClientEvents>(event: U, listener: (...args: ObservedClientEvents[U]) => void): this;
emit<U extends keyof ObservedClientEvents>(event: U, ...args: ObservedClientEvents[U]): boolean;
}
export declare class ObservedClient<AppData extends Record<string, unknown> = Record<string, unknown>> extends EventEmitter {
readonly call: ObservedCall;
readonly detectors: Detectors;
readonly clientId: string;
readonly observedPeerConnections: Map<string, ObservedPeerConnection>;
readonly calculatedScore: CalculatedScore;
appData: AppData;
attachments?: Record<string, unknown>;
updated: number;
acceptedSamples: number;
closed: boolean;
joinedAt?: number;
leftAt?: number;
closedAt?: number;
lastSampleTimestamp?: number;
operationSystem?: MetaData.OperationSystem;
engine?: MetaData.Engine;
platform?: MetaData.Platform;
browser?: MetaData.Browser;
mediaConstraints: string[];
usingTURN: boolean;
usingTCP: boolean;
availableOutgoingBitrate: number;
availableIncomingBitrate: number;
totalInboundPacketsLost: number;
totalInboundPacketsReceived: number;
totalOutboundPacketsSent: number;
totalDataChannelBytesSent: number;
totalDataChannelBytesReceived: number;
totalDataChannelMessagesSent: number;
totalDataChannelMessagesReceived: number;
totalReceivedAudioBytes: number;
totalReceivedVideoBytes: number;
totalSentAudioBytes: number;
totalSentVideoBytes: number;
totalSentBytes: number;
totalReceivedBytes: number;
deltaReceivedAudioBytes: number;
deltaReceivedVideoBytes: number;
deltaSentAudioBytes: number;
deltaSentVideoBytes: number;
deltaDataChannelBytesSent: number;
deltaDataChannelBytesReceived: number;
deltaDataChannelMessagesSent: number;
deltaDataChannelMessagesReceived: number;
deltaInboundPacketsLost: number;
deltaInboundPacketsReceived: number;
deltaOutboundPacketsSent: number;
deltaTransportSentBytes: number;
deltaTransportReceivedBytes: number;
deltaRttLt50Measurements: number;
deltaRttLt150Measurements: number;
deltaRttLt300Measurements: number;
deltaRttGtOrEq300Measurements: number;
currentMaxRttInMs?: number;
currentMinRttInMs?: number;
currentAvgRttInMs?: number;
sendingAudioBitrate: number;
sendingVideoBitrate: number;
receivingAudioBitrate: number;
receivingVideoBitrate: number;
numberOfInboundRtpStreams: number;
numberOfInbundTracks: number;
numberOfOutboundRtpStreams: number;
numberOfOutboundTracks: number;
numberOfDataChannels: number;
totalRttLt50Measurements: number;
totalRttLt150Measurements: number;
totalRttLt300Measurements: number;
totalRttGtOrEq300Measurements: number;
deltaNumberOfIssues: number;
totalScoreSum: number;
numberOfScoreMeasurements: number;
totalNumberOfIssues: number;
readonly mediaDevices: MetaData.MediaDeviceInfo[];
issues: ClientIssue[];
private _injections;
constructor(settings: ObservedClientSettings<AppData>, call: ObservedCall);
get numberOfPeerConnections(): number;
get score(): number | undefined;
close(): void;
accept(sample: ClientSample): void;
private _processClientEvent;
injectMetaData(metaData: ClientMetaData): void;
injectEvent(event: ClientEvent): void;
injectIssue(issue: ClientIssue): void;
injectExtensionStat(stat: ExtensionStat): void;
injectAttachment(key: string, value: unknown): void;
addMetadata(metadata: ClientMetaData): void;
addIssue(issue: ClientIssue): void;
addExtensionStats(stats: ExtensionStat): void;
private _updatePeerConnection;
private _mergeInjections;
}
//# sourceMappingURL=ObservedClient.d.ts.map