RTCForge API Reference v1.1.1
    Preparing search index...

    Interface Transport

    The signaling channel abstraction between RTCForgeClient and the server. WebSocketTransport is the default implementation; provide an alternative through RTCForgeClientOptions.transportFactory to swap in a different socket or a test double.

    A transport owns connection lifecycle, offline message queuing, and reconnection. It emits TransportEvents and only surfaces messages that pass schema validation.

    interface Transport {
        close(): void;
        connect(): Promise<void>;
        flush(): void;
        off<K extends keyof TransportEvents>(
            event: K,
            listener: (...args: TransportEvents[K]) => void,
        ): this;
        on<K extends keyof TransportEvents>(
            event: K,
            listener: (...args: TransportEvents[K]) => void,
        ): this;
        once<K extends keyof TransportEvents>(
            event: K,
            listener: (...args: TransportEvents[K]) => void,
        ): this;
        send(
            msg:
                | { data: unknown; to: string; type: "signal" }
                | { type: "pong" }
                | { channel: string; data?: unknown; type: "broadcast" },
        ): void;
    }

    Hierarchy

    Implemented by

    Index

    Methods

    • Opens the connection, resolving when the socket is open and rejecting on failure/timeout.

      Returns Promise<void>

    • Flushes any queued messages to the open socket. Called after (re)join to drain the offline buffer.

      Returns void

    • Removes a previously registered listener for event.

      Type Parameters

      Parameters

      • event: K

        The event name the listener was registered for.

      • listener: (...args: TransportEvents[K]) => void

        The exact function reference passed to on or once.

      Returns this

      This emitter, for chaining.

      If the listener is not currently registered, this is a no-op. Only the first matching registration is removed.

    • Registers a listener that is invoked at most once: it is removed automatically before being called the first time event is emitted.

      Type Parameters

      Parameters

      • event: K

        The event name to listen for.

      • listener: (...args: TransportEvents[K]) => void

        Callback invoked with the event's argument tuple on the next emission.

      Returns this

      This emitter, for chaining.

      Remove a pending one-time listener by passing the same function reference to off.

    • Sends a message immediately if connected, otherwise buffers it in the send queue.

      Parameters

      • msg:
            | { data: unknown; to: string; type: "signal" }
            | { type: "pong" }
            | { channel: string; data?: unknown; type: "broadcast" }

      Returns void