Whether this stream is inbound or outbound
Unique identifier for a stream. Identifiers are not unique across muxers.
If no data is transmitted over the stream in this many ms, the stream will be aborted with an InactivityTimeoutError
Readonly
logA logging implementation that can be used to log stream-specific messages
Optional
maxThe maximum number of bytes to store when paused. If receipt of more bytes from the remote end of the stream causes the buffer size to exceed this value the stream will be reset and a 'close' event emitted.
This value can be changed at runtime.
Optional
maxWhen the .send
method returns false it means that the underlying resource
has signalled that it's write buffer is full. If the user continues to call
.send
, outgoing bytes are stored in an internal buffer until the
underlying resource signals that it can accept more data.
If the size of that internal buffer exceed this value the stream will be reset and a 'close' event emitted.
This value can be changed at runtime.
The protocol negotiated for this stream
Protected
Readonly
readAny data stored here is emitted before any new incoming data.
This is used when the stream is paused or if data is pushed onto the stream
Protected
sendingThe current status of the message stream
Readonly
timelineTimestamps of when stream events occurred
If this property is true
, the underlying transport has signalled that its
write buffer is full and that .send
should not be called again.
A drain
event will be emitted after which is its safe to call .send
again to resume sending.
Protected
Readonly
writeReturns the number of bytes that are queued to be read
Returns the number of bytes that are queued to be written
Close immediately for reading and writing and send a reset message (local error)
Optional
options: boolean | AddEventListenerOptionsOptional
options: boolean | AddEventListenerOptionsStop accepting new data to send and return a promise that resolves when any unsent data has been written into the underlying resource.
Optional
options: AbortOptionsSend a message to the remote end of the stream informing them that any incoming data will be discarded so they should stop sending.
This requires the underlying resource to support this operation - for example the QUIC, WebTransport, WebRTC transports do but anything multiplexed using Yamux or Mplex do not.
Optional
options: AbortOptionsDispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
Protected
dispatchhandleWindowUpdate is called when the stream receives a window update frame
When an extending class reads data from it's implementation-specific source, call this method to allow the stream consumer to read the data.
Returns a promise that resolves when the stream can accept new data or rejects if the stream is closed or reset before this occurs.
Optional
options: AbortOptionsCalled by extending classes when the remote closes its readable end
Called by extending classes when the remote closes its writable end
Receive a reset message - close immediately for reading and writing (remote error)
The underlying resource or transport this stream uses has closed - it is not possible to send any more messages though any data still in the read buffer may still be read
Optional
err: ErrorStop emitting further 'message' events. Any received data will be stored in
an internal buffer. If the buffer size reaches maxReadBufferLength
, the
stream will be reset and a StreamAbortEvent emitted.
If the underlying resource supports it, the remote peer will be instructed to pause transmission of further data.
Protected
processQueue the passed data to be emitted as a 'message' event either during the next tick or sooner if data is received from the underlying resource.
Removes the event listener in target's event listener list with the same type, callback, and options.
Optional
listener: EventHandler<MessageStreamEvents[K]> | nullOptional
options: boolean | EventListenerOptionsResume emitting 'message' events.
If the underlying resource supports it, the remote peer will be informed that it is ok to start sending data again.
Optional
detail: CustomEventInit<Detail>Write data to the stream. If the method returns false it means the internal buffer is now full and the caller should wait for the 'drain' event before sending more data.
This method may throw if:
Send a message to the remote muxer, informing them no more data messages will be read by this end of the stream - this is a no-op on Yamux streams
Optional
options: AbortOptionsSend a message to the remote muxer, informing them no more data messages will be sent by this end of the stream
Stop sending window updates temporarily - in the interim the the remote send window will exhaust and the remote will stop sending data
Send a reset message to the remote muxer
Start sending window updates as normal
Potentially sends a window update enabling further remote writes to take place.
Similar to the .push
method, except this ensures the passed data is
emitted before any other queued data.
YamuxStream is used to represent a logical stream within a session