websocket

Pwebsocket
Bun

Symbol

UnixWebSocketServeOptions.websocket

websocket: WebSocketHandler<WebSocketDataType>

Enable websockets with Bun.serve

For simpler type safety, see Bun.websocket

import { serve } from "bun";
serve({
 websocket: {
   open: (ws) => {
     console.log("Client connected");
   },
   message: (ws, message) => {
     console.log("Client sent message", message);
   },
   close: (ws) => {
     console.log("Client disconnected");
   },
 },
 fetch(req, server) {
   const url = new URL(req.url);
   if (url.pathname === "/chat") {
     const upgraded = server.upgrade(req);
     if (!upgraded) {
       return new Response("Upgrade failed", { status: 400 });
     }
   }
   return new Response("Hello World");
 },
});

Upgrade a Request to a ServerWebSocket via Server.upgrade

Pass data in @{link Server.upgrade} to attach data to the ServerWebSocket.data property