Skip to main content

WebRTCDataChannelTransport

@totemsdk/stream-transport


@totemsdk/stream-transport / WebRTCDataChannelTransport

Class: WebRTCDataChannelTransport

Wraps an RTCDataChannel (browser WebRTC) as IStreamTransport. Requires the RTCDataChannel to be in arraybuffer mode.

The browser RTCDataChannel API has no send-completion signal, so backpressure is documented as not honoured; send() resolves after enqueue and rejects only after close.

Implements

Constructors

Constructor

new WebRTCDataChannelTransport(channel): WebRTCDataChannelTransport

Parameters

channel

unknown

Returns

WebRTCDataChannelTransport

Accessors

state

Get Signature

get state(): TransportState

Explicit connection state.

Returns

TransportState

Explicit connection state.

Implementation of

IStreamTransport.state

Methods

close()

close(): Promise<void>

Close the transport. After the returned promise resolves, no further data or close deliveries occur. Calling close() more than once is safe (the second call resolves immediately).

Returns

Promise<void>

Implementation of

IStreamTransport.close


onClose()

onClose(handler): () => void

Subscribe to connection close. Returns an unsubscribe function.

Parameters

handler

CloseHandler

Returns

() => void

Implementation of

IStreamTransport.onClose


onData()

onData(handler): () => void

Subscribe to data chunks. Returns an unsubscribe function.

Parameters

handler

DataHandler

Returns

() => void

Implementation of

IStreamTransport.onData


onError()

onError(handler): () => void

Subscribe to transport errors. Returns an unsubscribe function.

Parameters

handler

ErrorHandler

Returns

() => void

Implementation of

IStreamTransport.onError


send()

send(data): Promise<void>

Send bytes to the remote peer.

  • Returns a promise that resolves once the bytes are accepted by the underlying transport (or after the documented backpressure policy).
  • Rejects with ClosedTransportError if the transport is closed.
  • Rejects with the underlying error if delivery fails.

Parameters

data

Uint8Array

Returns

Promise<void>

Implementation of

IStreamTransport.send