UNPKG

node-datachannel

Version:

WebRTC For Node.js and Electron. libdatachannel node bindings.

119 lines (117 loc) 4.38 kB
interface Channel { close(): void; sendMessage(msg: string): boolean; sendMessageBinary(buffer: Uint8Array): boolean; isOpen(): boolean; bufferedAmount(): number; maxMessageSize(): number; setBufferedAmountLowThreshold(newSize: number): void; onOpen(cb: () => void): void; onClosed(cb: () => void): void; onError(cb: (err: string) => void): void; onBufferedAmountLow(cb: () => void): void; onMessage(cb: (msg: string | Buffer | ArrayBuffer) => void): void; } interface WebSocketServerConfiguration { port?: number; enableTls?: boolean; certificatePemFile?: string; keyPemFile?: string; keyPemPass?: string; bindAddress?: string; connectionTimeout?: number; maxMessageSize?: number; } type LogLevel = 'Verbose' | 'Debug' | 'Info' | 'Warning' | 'Error' | 'Fatal'; interface SctpSettings { recvBufferSize?: number; sendBufferSize?: number; maxChunksOnQueue?: number; initialCongestionWindow?: number; congestionControlModule?: number; delayedSackTime?: number; } type ProxyServerType = 'Socks5' | 'Http'; interface ProxyServer { type: ProxyServerType; ip: string; port: number; username?: string; password?: string; } type RelayType = 'TurnUdp' | 'TurnTcp' | 'TurnTls'; interface IceServer { hostname: string; port: number; username?: string; password?: string; relayType?: RelayType; } type TransportPolicy = 'all' | 'relay'; interface RtcConfig { iceServers: (string | IceServer)[]; proxyServer?: ProxyServer; bindAddress?: string; enableIceTcp?: boolean; enableIceUdpMux?: boolean; disableAutoNegotiation?: boolean; forceMediaTransport?: boolean; portRangeBegin?: number; portRangeEnd?: number; maxMessageSize?: number; mtu?: number; iceTransportPolicy?: TransportPolicy; disableFingerprintVerification?: boolean; disableAutoGathering?: boolean; certificatePemFile?: string; keyPemFile?: string; keyPemPass?: string; } type DescriptionType = 'unspec' | 'offer' | 'answer' | 'pranswer' | 'rollback'; type RTCSdpType = 'answer' | 'offer' | 'pranswer' | 'rollback'; type RTCIceTransportState = 'checking' | 'closed' | 'completed' | 'connected' | 'disconnected' | 'failed' | 'new'; type RTCPeerConnectionState = 'closed' | 'connected' | 'connecting' | 'disconnected' | 'failed' | 'new'; type RTCIceConnectionState = 'checking' | 'closed' | 'completed' | 'connected' | 'disconnected' | 'failed' | 'new'; type RTCIceGathererState = 'complete' | 'gathering' | 'new'; type RTCIceGatheringState = 'complete' | 'gathering' | 'new'; type RTCSignalingState = 'closed' | 'have-local-offer' | 'have-local-pranswer' | 'have-remote-offer' | 'have-remote-pranswer' | 'stable'; interface LocalDescriptionInit { iceUfrag?: string; icePwd?: string; } interface DataChannelInitConfig { protocol?: string; negotiated?: boolean; id?: number; unordered?: boolean; maxPacketLifeTime?: number; maxRetransmits?: number; } interface CertificateFingerprint { /** * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCCertificate/getFingerprints#value */ value: string; /** * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCCertificate/getFingerprints#algorithm */ algorithm: 'sha-1' | 'sha-224' | 'sha-256' | 'sha-384' | 'sha-512' | 'md5' | 'md2'; } interface SelectedCandidateInfo { address: string; port: number; type: string; transportType: string; candidate: string; mid: string; priority: number; } type Direction = 'SendOnly' | 'RecvOnly' | 'SendRecv' | 'Inactive' | 'Unknown'; interface IceUdpMuxRequest { ufrag: string; host: string; port: number; } type NalUnitSeparator = 'Length' | 'ShortStartSequence' | 'LongStartSequence' | 'StartSequence'; type ObuPacketization = 'Obu' | 'TemporalUnit'; export type { CertificateFingerprint, Channel, DataChannelInitConfig, DescriptionType, Direction, IceServer, IceUdpMuxRequest, LocalDescriptionInit, LogLevel, NalUnitSeparator, ObuPacketization, ProxyServer, ProxyServerType, RTCIceConnectionState, RTCIceGathererState, RTCIceGatheringState, RTCIceTransportState, RTCPeerConnectionState, RTCSdpType, RTCSignalingState, RelayType, RtcConfig, SctpSettings, SelectedCandidateInfo, TransportPolicy, WebSocketServerConfiguration };