Skip to main content
Start a simple WebSocket server using Bun.serve. Inside fetch, we attempt to upgrade incoming ws: or wss: requests to WebSocket connections.
https://mintcdn.com/bun-1dd33a4e/Hq64iapoQXHbYMEN/icons/typescript.svg?fit=max&auto=format&n=Hq64iapoQXHbYMEN&q=85&s=c6cceedec8f82d2cc803d7c6ec82b240server.ts
const server = Bun.serve({  fetch(req, server) {  const success = server.upgrade(req);  if (success) {  // Bun automatically returns a 101 Switching Protocols  // if the upgrade succeeds  return undefined;  }   // handle HTTP request normally  return new Response("Hello world!");  },  websocket: {  // TypeScript: specify the type of ws.data like this  data: {} as { authToken: string },   // this is called when a message is received  async message(ws, message) {  console.log(`Received ${message}`);  // send back a message  ws.send(`You said: ${message}`);  },  }, });  console.log(`Listening on ${server.hostname}:${server.port}`);