Documentation
    Preparing search index...

    Class ReliableChannel<T>

    An easy-to-use reliable channel that ensures all participants to the channel have eventual message consistency.

    Use events to track:

    • if your outgoing messages are sent, acknowledged or error out
    • for new incoming messages

    [[ReliableChannelEvents]]

    Type Parameters

    Hierarchy

    Index

    Properties

    messageChannel: MessageChannel
    node: IWaku
    syncStatus: ISyncStatusEvents

    Emit events when the channel is aware of missing message. Note that "synced" may mean some messages are irretrievably lost. Check the emitted data for details.

    [[StatusEvents]]

    Accessors

    Methods

    • Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.

      The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.

      When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.

      When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.

      When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.

      If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.

      The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.

      MDN Reference

      Type Parameters

      Parameters

      Returns 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

      • event: Event

      Returns boolean

    • Parameters

      • type: string

      Returns number

    • Removes the event listener in target's event listener list with the same type, callback, and options.

      MDN Reference

      Type Parameters

      Parameters

      • type: K
      • Optionallistener: null | EventHandler<ReliableChannelEvents[K]>
      • Optionaloptions: boolean | EventListenerOptions

      Returns void

    • Type Parameters

      • Detail

      Parameters

      Returns boolean

    • Create a new message channels. Message channels enables end-to-end reliability by ensuring that all messages in the channel are received by other users, and retrieved by this local node.

      emits events about outgoing messages, see [[ReliableChannel]] docs.

      Note that all participants in a message channels need to get the messages from the channel. Meaning:

      • all participants must be able to decrypt the messages
      • all participants must be subscribing to content topic(s) where the messages are sent

      Type Parameters

      Parameters

      • node: IWaku

        The waku node to use to send and receive messages

      • channelId: string

        An id for the channel, all participants of the channel should use the same id

      • senderId: string

        An id for the sender, to ensure acknowledgements are only valid if originating from someone else; best if persisted between sessions

      • encoder: IEncoder

        A channel operates within a singular encryption layer, hence the same encoder is needed for all messages

      • decoder: IDecoder<T>

        A channel operates within a singular encryption layer, hence the same decoder is needed for all messages

      • Optionaloptions: ReliableChannelOptions

      Returns Promise<ReliableChannel<T>>

    • Used to identify messages, pass the payload of a message you are about to send to track the events for this message. This is pre-sds wrapping

      Parameters

      • messagePayload: Uint8Array

      Returns string