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, });
Type Parameters
Section titled “Type Parameters”UserData
Section titled “UserData”UserData = unknown
Parameters
Section titled “Parameters”system
Section titled “system”BunWebSocketHandlerOptions<UserData> = {}
Returns
Section titled “Returns”object
close()
Section titled “close()”close(
ws,code,reason):void
Parameters
Section titled “Parameters”BunServerWebSocketLike<BunWebSocketSlot<UserData>>
number
reason
Section titled “reason”string
Returns
Section titled “Returns”void
drain()
Section titled “drain()”drain(
ws):void
Parameters
Section titled “Parameters”BunServerWebSocketLike<BunWebSocketSlot<UserData>>
Returns
Section titled “Returns”void
message()
Section titled “message()”message(
ws,message):void
Parameters
Section titled “Parameters”BunServerWebSocketLike<BunWebSocketSlot<UserData>>
message
Section titled “message”string | Buffer<ArrayBufferLike>
Returns
Section titled “Returns”void
open()
Section titled “open()”open(
ws):void
Parameters
Section titled “Parameters”BunServerWebSocketLike<UserData>
Returns
Section titled “Returns”void