Skip to content

TcpTransport

Defined in: src/cluster/Transport.ts:61

TCP-backed cluster transport. Wire framing lives in Protocol.ts; the actual socket API is plugged in per runtime via TcpBackend (src/runtime/tcp/), so this class is identical on Bun, Node.js, and Deno — the differences in listen/connect/socket shape are absorbed by the adapter.

Per-connection state is tracked in a WeakMap<TcpSocketLike, Conn>TcpSocketLike is intentionally opaque and has no stash slot.

new TcpTransport(self, log, tls?, maxFrameBytes?): TcpTransport

Defined in: src/cluster/Transport.ts:69

NodeAddress

Logger

TlsTransportSettings | null

Optional TLS configuration — when set, both listener and dialer use TLS.

number = DEFAULT_MAX_FRAME_BYTES

Per-frame size cap (security). Frames whose length-prefix exceeds this are rejected before any payload bytes are buffered — closes the 4-GiB-claim DoS vector documented on FrameDecoder. Default: DEFAULT_MAX_FRAME_BYTES (16 MiB). Raise it only if you genuinely send larger envelopes; the cap is per-frame, not aggregate.

TcpTransport

readonly self: NodeAddress

Defined in: src/cluster/Transport.ts:70

Transport.self

disconnect(peer): void

Defined in: src/cluster/Transport.ts:125

Close the connection to a peer.

NodeAddress

void

Transport.disconnect


peers(): NodeAddress[]

Defined in: src/cluster/Transport.ts:132

Peers currently connected (either inbound or outbound).

NodeAddress[]

Transport.peers


send(to, msg): void

Defined in: src/cluster/Transport.ts:115

Best-effort fire-and-forget send. Opens a connection on first use.

NodeAddress

WireMessage

void

Transport.send


setHandler(handler): void

Defined in: src/cluster/Transport.ts:85

WireHandler

void

Transport.setHandler


shutdown(): Promise<void>

Defined in: src/cluster/Transport.ts:103

Promise<void>

Transport.shutdown


start(): Promise<void>

Defined in: src/cluster/Transport.ts:87

Promise<void>

Transport.start