@chainsafe/libp2p-yamux
    Preparing search index...

    Class YamuxStream

    YamuxStream is used to represent a logical stream within a session

    Hierarchy

    Index

    Constructors

    Properties

    Whether this stream is inbound or outbound

    id: string

    Unique identifier for a stream. Identifiers are not unique across muxers.

    inactivityTimeout: number

    If no data is transmitted over the stream in this many ms, the stream will be aborted with an InactivityTimeoutError

    log: Logger

    A logging implementation that can be used to log stream-specific messages

    maxMessageSize?: number
    maxReadBufferLength: number

    The 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.

    maxWriteBufferLength?: number

    When 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.

    protocol: string

    The protocol negotiated for this stream

    readBuffer: Uint8ArrayList

    Any 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

    remoteReadStatus: MessageStreamReadStatus
    remoteWriteStatus: MessageStreamWriteStatus
    sendingData: boolean

    The current status of the message stream

    streamId: number

    Timestamps of when stream events occurred

    writableNeedsDrain: boolean

    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.

    writeBuffer: Uint8ArrayList

    Accessors

    • get readBufferLength(): number

      Returns the number of bytes that are queued to be read

      Returns number

    • get writeBufferLength(): number

      Returns the number of bytes that are queued to be written

      Returns number

    Methods

    • Close immediately for reading and writing and send a reset message (local error)

      Parameters

      Returns void

    • Stop accepting new data to send and return a promise that resolves when any unsent data has been written into the underlying resource.

      Parameters

      Returns Promise<void>

    • Send 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.

      Parameters

      Returns Promise<void>

    • Dispatches 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.

      MDN Reference

      Parameters

      Returns boolean

    • handleData is called when the stream receives a data frame

      Parameters

      Returns void

    • handleWindowUpdate is called when the stream receives a window update frame

      Parameters

      Returns void

    • Returns boolean

    • Parameters

      • type: string

      Returns number

    • When an extending class reads data from it's implementation-specific source, call this method to allow the stream consumer to read the data.

      Parameters

      Returns void

    • Returns a promise that resolves when the stream can accept new data or rejects if the stream is closed or reset before this occurs.

      Parameters

      Returns Promise<void>

    • Returns void

    • Returns void

    • Called by extending classes when the remote closes its readable end

      Returns void

    • Called by extending classes when the remote closes its writable end

      Returns void

    • Receive a reset message - close immediately for reading and writing (remote error)

      Returns void

    • 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

      Parameters

      Returns void

    • Stop 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.

      Returns void

    • Returns boolean

    • Queue 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.

      Parameters

      Returns void

    • Resume emitting 'message' events.

      If the underlying resource supports it, the remote peer will be informed that it is ok to start sending data again.

      Returns void

    • 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:

      • The internal send buffer is full
      • The stream has previously been closed for writing locally or remotely

      Parameters

      Returns boolean

    • 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

      Parameters

      Returns Promise<void>

    • Send a message to the remote muxer, informing them no more data messages will be sent by this end of the stream

      Returns Promise<void>

    • Stop sending window updates temporarily - in the interim the the remote send window will exhaust and the remote will stop sending data

      Returns void

    • Potentially sends a window update enabling further remote writes to take place.

      Returns void

    • Similar to the .push method, except this ensures the passed data is emitted before any other queued data.

      Parameters

      Returns void