Skip to content

bunWebSocketHandlers

bunWebSocketHandlers<UserData>(system, opts?): object

Defined in: src/io/broker/WebSocketServerAdapters.ts:172

Build the four Bun.serve({ websocket: ... }) callbacks pre-wired to spawn a ServerWebSocketActor per connection. Pair with bunUpgrade(req, server, { initialUserData }) from your fetch handler:

const wsHandlers = bunWebSocketHandlers(system, { target: chatRoom, onOpen: (_ws, ref) => chatRoom.tell({ kind: ‘join’, client: ref }), onClose: (_ws, ref) => chatRoom.tell({ kind: ‘leave’, client: ref }), });

Bun.serve({ port: 3000, fetch(req, server) { if (new URL(req.url).pathname === ‘/ws’) { if (server.upgrade(req, { data: { user: ‘alice’ } })) return undefined; return new Response(‘upgrade failed’, { status: 400 }); } return new Response(‘not found’, { status: 404 }); }, websocket: wsHandlers, });

UserData = unknown

ActorSystem

BunWebSocketHandlerOptions<UserData> = {}

object

close(ws, code, reason): void

BunServerWebSocketLike<BunWebSocketSlot<UserData>>

number

string

void

drain(ws): void

BunServerWebSocketLike<BunWebSocketSlot<UserData>>

void

message(ws, message): void

BunServerWebSocketLike<BunWebSocketSlot<UserData>>

string | Buffer<ArrayBufferLike>

void

open(ws): void

BunServerWebSocketLike<UserData>

void