infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
58 lines (57 loc) • 2.46 kB
TypeScript
import { SetupDataChannelEvent } from "../ws/event/DataChannelEvents";
import { Participant } from "../../util/Participant";
import { Logger } from "../../log/Logger";
import { InfobipGateway } from "../../gateway/InfobipGateway";
import { ApiEventEmitter } from "../../util/ApiEventEmitter";
import { DataChannel } from "../DataChannel";
import { AnyDataChannelEvent } from "../event/DataChannelEvents";
import { DataChannelEventHandlers } from "../event/DataChannelEventHandlers";
import { Endpoint } from "../../util/Endpoint";
type IceCandidateHandler = (ev: RTCPeerConnectionIceEvent) => any;
export declare class DefaultDataChannel implements DataChannel {
private gateway;
private logger;
private callId;
private currentUserIdentity;
private participantResolver;
private iceCandidateHandler;
private canSendMessage;
private apiEventEmitter;
private conferenceId;
private readonly dataEventEmitter;
private textRoomId;
private dataChannel;
private textRoomParticipants;
private dataChannelPc;
private readonly availabilityLock;
private readonly timeLock;
private readonly bufferLock;
private readonly pendingMessages;
private currentAvailabilityLock;
private currentBufferLock;
constructor(gateway: InfobipGateway, logger: Logger, callId: string, currentUserIdentity: string, participantResolver: (identity: string) => Participant, iceCandidateHandler: IceCandidateHandler, canSendMessage: () => boolean, apiEventEmitter: ApiEventEmitter, conferenceId: string);
private setupAvailabilityLock;
initialize(event: SetupDataChannelEvent, rtcConfig?: RTCConfiguration): void;
on(name: AnyDataChannelEvent, handler: DataChannelEventHandlers.Any): void;
send(text: string, to?: Endpoint): Promise<string>;
destroy(): void;
removeParticipantOnReconnect(identity: string): void;
addParticipantOnReconnect(identity: string): void;
private getMessageRecipient;
private onDataChannel;
private handleErrorMessage;
private handleDataMessage;
private handleAnnouncementData;
private emitDataSent;
private emitDataReceived;
private emitBroadcastTextReceived;
private handleLeaveMessage;
private handleSuccessMessage;
private handleJoinMessage;
private initializeDataChannelListeners;
private sendAnswer;
private sendJoinMessage;
private sendTextMessage;
private sendDataChannelMessage;
}
export {};