Skip to content

Interface: IDirectChannel

Makaio Framework


Makaio Framework / bus-core / IDirectChannel

Defined in: ../../../packages/bus-core/src/channel/types.ts:13

Encrypted point-to-point communication channel over the bus.

Provides a bus-compatible interface (on, once, emit, request) where all payloads are encrypted with a shared AES-256-GCM key derived via ECDH. Observers, middleware, and transport loggers only see opaque { iv, data } payloads. Channel messages ride the normal bus transport layer unless the caller explicitly constrains routing via the underlying bus configuration.

readonly channelId: string

Defined in: ../../../packages/bus-core/src/channel/types.ts:15

Unique channel identifier (used in channel-scoped subject namespaces).

close(): void

Defined in: ../../../packages/bus-core/src/channel/types.ts:78

Close the channel. Notifies peer, rejects pending requests, unsubscribes all handlers, and discards the shared encryption key.

void


emit<Subject>(subject, payload): Promise<void>

Defined in: ../../../packages/bus-core/src/channel/types.ts:44

Fire-and-forget encrypted event to the peer.

Subject extends SubjectDefinition

Subject

Subject definition

Subject["$meta"]["payload"]

Event payload (will be encrypted before dispatch)

Promise<void>


on<Subject>(subject, handler, options?): () => void

Defined in: ../../../packages/bus-core/src/channel/types.ts:25

Register an event or request handler on this channel. The handler receives decrypted payloads — encryption is transparent.

Subject extends SubjectDefinition

Subject

Subject definition (channel or non-channel subjects both accepted)

HandlerForSubjectDefinition<Subject>

Handler function matching the subject’s schema

OnOptions

Handler options (priority, etc.)

Unsubscribe function

() => void


once<Subject>(subject, handler): () => void

Defined in: ../../../packages/bus-core/src/channel/types.ts:37

Register a one-time handler that auto-unsubscribes after first invocation.

Subject extends SubjectDefinition

Subject

Subject definition

HandlerForSubjectDefinition<Subject>

Handler function

Unsubscribe function

() => void


request<Subject>(subject, payload, options?): Promise<Subject["$meta"]["payload"]["response"]>

Defined in: ../../../packages/bus-core/src/channel/types.ts:55

Encrypted request-response to the peer.

Subject extends SubjectDefinition

Subject

Subject definition (must be a request subject)

Subject["$meta"]["payload"]["request"]

Request payload (will be encrypted before dispatch)

Request options (timeout, etc.)

number

Promise<Subject["$meta"]["payload"]["response"]>

Decrypted response

{ChannelClosedError} If the channel is closed

{NoHandlerError} If the peer has no handler for this subject


requestOptional<Subject>(subject, payload, options?): Promise<OptionalResult<Subject["$meta"]["payload"]["response"]>>

Defined in: ../../../packages/bus-core/src/channel/types.ts:68

Encrypted request-response, returns handled: false instead of throwing NoHandlerError.

Subject extends SubjectDefinition

Subject

Subject definition (must be a request subject)

Subject["$meta"]["payload"]["request"]

Request payload

Request options

number

Promise<OptionalResult<Subject["$meta"]["payload"]["response"]>>

OptionalResult wrapping the response