UNPKG

@skyway-sdk/analytics-client

Version:

The official Next Generation JavaScript SDK for SkyWay

84 lines 4.3 kB
import { OnLogForAnalyticsProps } from '@skyway-sdk/common'; import { ContentType } from '@skyway-sdk/model'; import { BindingRtcPeerConnectionToSubscriptionClientEvent, JoinReportClientEvent, MediaDeviceReportClientEvent, PublicationUpdateEncodingsReportClientEvent, RtcPeerConnectionEventReportClientEvent, SubscriptionStatsReportClientEvent, SubscriptionUpdatePreferredEncodingReportClientEvent } from './clientEvent'; import { ConnectionFailedEventPayload } from './payloadTypes'; import { ConnectionState } from './socket'; import { Event } from './utils/event'; import { Logger } from './utils/logger'; declare type AnalyticsClientParams = { token: string; sdkVersion: string; contextId: string; }; declare type AnalyticsClientOptions = { analyticsLoggingServerDomain?: string; secure?: boolean; logger?: Logger; }; declare type MediaDeviceReport = MediaDeviceReportClientEvent['payload']; declare type BindingRtcPeerConnectionToSubscription = BindingRtcPeerConnectionToSubscriptionClientEvent['payload']; declare type SubscriptionStatsReport = SubscriptionStatsReportClientEvent['payload']; declare type RtcPeerConnectionEventReport = RtcPeerConnectionEventReportClientEvent['payload']; declare type PublicationUpdateEncodingsReport = PublicationUpdateEncodingsReportClientEvent['payload']; declare type SubscriptionUpdatePreferredEncodingReport = SubscriptionUpdatePreferredEncodingReportClientEvent['payload']; declare type JoinReport = JoinReportClientEvent['payload']; export declare class AnalyticsClient { private readonly _options; private readonly _logger; private _socket; readonly onConnectionStateChanged: Event<ConnectionState>; readonly onConnectionFailed: Event<void>; readonly onAnalyticsNotEnabledError: Event<ConnectionFailedEventPayload>; private _token; private _newToken; private readonly _sdkVersion; private readonly _contextId; private _isClosed; private _responseCallbacks; private _acknowledgeCallbacks; private _mediaDeviceVersion; private _encodingsVersion; private _preferredEncodingVersion; private _previousSubscriptionStats; private _statsRequest; private _pendingSdkLogs; private _sdkLogTimer; private static readonly MAX_PENDING_SDK_LOGS; constructor({ token, sdkVersion, contextId }: AnalyticsClientParams, options?: AnalyticsClientOptions); get connectionState(): ConnectionState; connect(): Promise<void>; bufferOrSendSdkLog(log: OnLogForAnalyticsProps): void; dispose(): void; setNewSkyWayAuthToken(token: string): void; cleanupOnUnpublished(publicationId: string): void; cleanupOnUnsubscribed(subscriptionId: string): void; private _disconnect; sendMediaDeviceReport(report: Omit<MediaDeviceReport, 'mediaDeviceVersion'>): Promise<void>; sendSdkLogReport(logs: OnLogForAnalyticsProps[]): Promise<void>; sendBindingRtcPeerConnectionToSubscription(bindingData: BindingRtcPeerConnectionToSubscription): Promise<void>; /** * RTCStatsReportにはcandidate-pair, local-candidate, remote-candidateが複数含まれる場合がある。 * 現在利用されているもののみを選出して返す。 */ private filterStatsReport; private bundleStatsReportByStatsType; sendSubscriptionStatsReport(report: RTCStatsReport, subscriptionParams: Omit<SubscriptionStatsReport, 'stats'> & { contentType: ContentType; }): Promise<void>; sendRtcPeerConnectionEventReport(report: RtcPeerConnectionEventReport): Promise<void>; sendPublicationUpdateEncodingsReport(report: Omit<PublicationUpdateEncodingsReport, 'encodingsVersion'>): Promise<void>; sendSubscriptionUpdatePreferredEncodingReport(report: Omit<SubscriptionUpdatePreferredEncodingReport, 'preferredEncodingVersion'>): Promise<void>; sendJoinReport(report: JoinReport): Promise<void>; private _sendClientEvent; private _waitForAcknowledge; private _reconnectWithNewSkyWayAuthToken; private _eventReceivedHandler; private _acknowledgeHandler; private _setAcknowledgeCallback; private _cleanupAnalyticsClientMaps; getIntervalSec(): number; isConnectionEstablished(): boolean; isClosed(): boolean; } export {}; //# sourceMappingURL=analyticsClient.d.ts.map