WebRTCDataChannelTransport
@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
Explicit connection state.
Implementation of
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
onClose()
onClose(
handler): () =>void
Subscribe to connection close. Returns an unsubscribe function.
Parameters
handler
Returns
() => void
Implementation of
onData()
onData(
handler): () =>void
Subscribe to data chunks. Returns an unsubscribe function.
Parameters
handler
Returns
() => void
Implementation of
onError()
onError(
handler): () =>void
Subscribe to transport errors. Returns an unsubscribe function.
Parameters
handler
Returns
() => void
Implementation of
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
ClosedTransportErrorif the transport is closed. - Rejects with the underlying error if delivery fails.
Parameters
data
Uint8Array
Returns
Promise<void>