UNPKG

@skyway-sdk/analytics-client

Version:

The official Next Generation JavaScript SDK for SkyWay

89 lines 4.54 kB
import type { OnLogForAnalyticsProps } from '@skyway-sdk/common'; import type { ContentType } from '@skyway-sdk/model'; import { type BindingRtcPeerConnectionToSubscriptionClientEvent, type JoinReportClientEvent, type MediaDeviceReportClientEvent, type PublicationUpdateEncodingsReportClientEvent, type RtcPeerConnectionEventReportClientEvent, type SubscriptionStatsReportClientEvent, type SubscriptionUpdatePreferredEncodingReportClientEvent } from './clientEvent'; import { type ConnectionFailedEventPayload } from './payloadTypes'; import { type ConnectionState } from './socket'; import { Event } from './utils/event'; import type { 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 _acknowledgeCancelCallbacks; private _acknowledgeTimeouts; 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 _cancelAcknowledgeWait; private _setAcknowledgeTimeout; private _clearAcknowledgeTimeout; private _reconnectWithNewSkyWayAuthToken; private _eventReceivedHandler; private _acknowledgeHandler; private _setAcknowledgeCallback; private _cleanupAnalyticsClientMaps; getIntervalSec(): number; isConnectionEstablished(): boolean; isClosed(): boolean; } export {}; //# sourceMappingURL=analyticsClient.d.ts.map