kkrpc
    Preparing search index...

    Class RPCChannel<LocalAPI, RemoteAPI>

    Owns one RPC transport, exposes an optional local API, and creates a typed remote proxy.

    Type Parameters

    • LocalAPI extends object = object
    • RemoteAPI extends object = object
    Index

    Constructors

    Properties

    closed: boolean = false
    closeReason?: Error
    destroyed: boolean = false
    expose?: LocalAPI
    getMetadata?: () => undefined | RPCMessageMetadata
    pending: Map<string, PendingRequest> = ...
    plugins: readonly RPCPlugin[]
    supportsTransfer: boolean
    timeout: number
    transport: Transport<RPCMessage>

    Methods

    • Store a pending request and arm its timeout and abort-signal handlers.

      Parameters

      • id: string
      • pending: PendingRequest
      • reject: (error: Error) => void
      • OptionalcallOptions: CallOptions

      Returns void

    • Build a local function that forwards calls to a remote callback by id.

      Parameters

      • id: string

      Returns (...args: unknown[]) => void

    • Decode value and callback envelopes into local call arguments.

      Parameters

      • args: unknown[]

      Returns unknown[]

    • Decode one value. Subclasses may override for opt-in feature envelopes.

      Parameters

      • value: unknown

      Returns unknown

    • Encode call arguments into value and callback envelopes.

      Parameters

      • args: unknown[]
      • transfers: Transferable[]

      Returns unknown[]

    • Encode a value and collect transferables when the transport supports them.

      Parameters

      • value: unknown
      • transfers: Transferable[]

      Returns unknown

    • Reject all pending requests when the transport connection closes.

      Subsequent requests fail fast with RPCTransportClosedError. The channel is not destroyed: the exposed API, plugins, and callback registry stay intact so the instance can still be inspected. Reconnect by creating a new transport and channel. Overridden by StreamingRPCChannel to also fail stream state.

      Parameters

      • Optionalreason: Error

      Returns void

    • Dispatch transport write failures to request waiters.

      Parameters

      • pendingId: undefined | string
      • error: unknown
      • OptionalonWriteError: (error: Error) => void

      Returns void

    • Invoke the exposed local API according to one compact RPC operation.

      Parameters

      • ctx: { args: unknown[]; operation: RPCOperation; path: string[]; value?: unknown }

      Returns Promise<unknown>

    Protectedpost

    • post(
          message: RPCMessage,
          transfers?: Transferable[],
          pendingId?: string,
          onWriteError?: (error: Error) => void,
      ): void | Promise<void>

      Send one protocol message and reject the pending request on write failure.

      Parameters

      • message: RPCMessage
      • transfers: Transferable[] = []
      • OptionalpendingId: string
      • OptionalonWriteError: (error: Error) => void

      Returns void | Promise<void>

    • Reject a pending request when its transport write fails.

      Parameters

      • pendingId: undefined | string
      • error: unknown

      Returns void

    • Report an error from a fire-and-forget path to the optional diagnostics hook.

      Parameters

      • error: unknown
      • context: { kind: "set" | "callback"; path?: string[] }

      Returns void