UNPKG

mediasoup

Version:

Cutting Edge WebRTC Video Conferencing

165 lines 4.96 kB
import { EnhancedEventEmitter } from './enhancedEvents'; import { BaseTransportDump, BaseTransportStats, Transport, TransportListenInfo, TransportListenIp, TransportTuple, TransportEvents, TransportObserverEvents, TransportConstructorOptions, SctpState } from './Transport'; import { Consumer } from './Consumer'; import { SctpParameters, NumSctpStreams } from './SctpParameters'; import { SrtpParameters } from './SrtpParameters'; import { AppData, Either } from './types'; import * as FbsPipeTransport from './fbs/pipe-transport'; type PipeTransportListenInfo = { /** * Listening info. */ listenInfo: TransportListenInfo; }; type PipeTransportListenIp = { /** * Listening IP address. */ listenIp: TransportListenIp | string; /** * Fixed port to listen on instead of selecting automatically from Worker's port * range. */ port?: number; }; type PipeTransportListen = Either<PipeTransportListenInfo, PipeTransportListenIp>; export type PipeTransportOptions<PipeTransportAppData extends AppData = AppData> = { /** * Create a SCTP association. Default false. */ enableSctp?: boolean; /** * SCTP streams number. */ numSctpStreams?: NumSctpStreams; /** * Maximum allowed size for SCTP messages sent by DataProducers. * Default 268435456. */ maxSctpMessageSize?: number; /** * Maximum SCTP send buffer used by DataConsumers. * Default 268435456. */ sctpSendBufferSize?: number; /** * Enable RTX and NACK for RTP retransmission. Useful if both Routers are * located in different hosts and there is packet lost in the link. For this * to work, both PipeTransports must enable this setting. Default false. */ enableRtx?: boolean; /** * Enable SRTP. Useful to protect the RTP and RTCP traffic if both Routers * are located in different hosts. For this to work, connect() must be called * with remote SRTP parameters. Default false. */ enableSrtp?: boolean; /** * Custom application data. */ appData?: PipeTransportAppData; } & PipeTransportListen; export type PipeTransportStat = BaseTransportStats & { type: string; tuple: TransportTuple; }; export type PipeConsumerOptions<ConsumerAppData> = { /** * The id of the Producer to consume. */ producerId: string; /** * Custom application data. */ appData?: ConsumerAppData; }; export type PipeTransportEvents = TransportEvents & { sctpstatechange: [SctpState]; }; export type PipeTransportObserver = EnhancedEventEmitter<PipeTransportObserverEvents>; export type PipeTransportObserverEvents = TransportObserverEvents & { sctpstatechange: [SctpState]; }; type PipeTransportConstructorOptions<PipeTransportAppData> = TransportConstructorOptions<PipeTransportAppData> & { data: PipeTransportData; }; export type PipeTransportData = { tuple: TransportTuple; sctpParameters?: SctpParameters; sctpState?: SctpState; rtx: boolean; srtpParameters?: SrtpParameters; }; export type PipeTransportDump = BaseTransportDump & { tuple: TransportTuple; rtx: boolean; srtpParameters?: SrtpParameters; }; export declare class PipeTransport<PipeTransportAppData extends AppData = AppData> extends Transport<PipeTransportAppData, PipeTransportEvents, PipeTransportObserver> { #private; /** * @private */ constructor(options: PipeTransportConstructorOptions<PipeTransportAppData>); /** * Observer. * * @override */ get observer(): PipeTransportObserver; /** * Transport tuple. */ get tuple(): TransportTuple; /** * SCTP parameters. */ get sctpParameters(): SctpParameters | undefined; /** * SCTP state. */ get sctpState(): SctpState | undefined; /** * SRTP parameters. */ get srtpParameters(): SrtpParameters | undefined; /** * Close the PipeTransport. * * @override */ close(): void; /** * Router was closed. * * @private * @override */ routerClosed(): void; /** * Get PipeTransport stats. * * @override */ getStats(): Promise<PipeTransportStat[]>; /** * Provide the PipeTransport remote parameters. * * @override */ connect({ ip, port, srtpParameters, }: { ip: string; port: number; srtpParameters?: SrtpParameters; }): Promise<void>; /** * Create a pipe Consumer. * * @override */ consume<ConsumerAppData extends AppData = AppData>({ producerId, appData, }: PipeConsumerOptions<ConsumerAppData>): Promise<Consumer<ConsumerAppData>>; private handleWorkerNotifications; } export declare function parsePipeTransportDumpResponse(binary: FbsPipeTransport.DumpResponse): PipeTransportDump; export {}; //# sourceMappingURL=PipeTransport.d.ts.map