Skip to content

WebSocketActorSettings

Defined in: src/io/broker/WebSocketActor.ts:13

Common settings every broker actor accepts on top of its protocol- specific options. Subclasses extend this interface with their own required fields (e.g. brokerUrl, topics).

readonly optional circuitBreaker?: object

Defined in: src/io/broker/BrokerSettings.ts:28

Optional circuit-breaker around connectImpl. After failureThreshold consecutive failed connect attempts the breaker opens for resetMs and rejects new attempts immediately.

readonly failureThreshold: number

readonly resetMs: number

BrokerCommonSettings.circuitBreaker


readonly optional headers?: Readonly<Record<string, string>>

Defined in: src/io/broker/WebSocketActor.ts:19

Custom request headers (Node only — browsers ignore these).


readonly optional maxInboundFrameBytes?: number

Defined in: src/io/broker/WebSocketActor.ts:37

Maximum allowed size of a single inbound frame, in bytes. Frames larger than this are dropped (logged at warn level) without being forwarded to target. Default: 1 MiB.

Why this exists (security): a malicious (or compromised) WS peer can send arbitrarily-large frames. Without a cap, the actor’s mailbox grows unbounded if target consumes slowly — one 100-MiB frame plus a stalled consumer exhausts the process. Set to Infinity to disable (not recommended for public-facing endpoints); raise the cap if you legitimately need bigger frames (audio/video streams).


readonly optional outboundBuffer?: number

Defined in: src/io/broker/BrokerSettings.ts:41

Maximum number of outbound messages buffered while the connection is connecting or disconnected. When the buffer is full the oldest message is dropped (FIFO eviction) and a BrokerBufferOverflow event is published. Default: 1000. Set to 0 to fail-fast (publish a BrokerNotConnected event and drop the message).

BrokerCommonSettings.outboundBuffer


readonly optional pingIntervalMs?: number

Defined in: src/io/broker/WebSocketActor.ts:23

Send a ping every pingIntervalMs to keep the connection alive. Default: disabled.


readonly optional protocols?: string | readonly string[]

Defined in: src/io/broker/WebSocketActor.ts:17

Subprotocols negotiated with the server.


readonly optional reconnect?: false | { factor?: number; initialDelayMs?: number; maxAttempts?: number; maxDelayMs?: number; }

Defined in: src/io/broker/BrokerSettings.ts:15

Reconnect strategy applied when the underlying connection drops or connectImpl throws. Default: exponential backoff starting at 200ms, doubling, capped at 30s, infinite attempts. Set to false to disable auto-reconnect (one-shot connections).

false


{ factor?: number; initialDelayMs?: number; maxAttempts?: number; maxDelayMs?: number; }

readonly optional factor?: number

readonly optional initialDelayMs?: number

readonly optional maxAttempts?: number

Cap on retry attempts. Default: Infinity (retry forever).

readonly optional maxDelayMs?: number

BrokerCommonSettings.reconnect


readonly optional target?: ActorRef<WebSocketFrame>

Defined in: src/io/broker/WebSocketActor.ts:21

Subscriber that receives every inbound frame. Required.


readonly optional url?: string

Defined in: src/io/broker/WebSocketActor.ts:15

WebSocket URL (ws://... or wss://...).