diff options
Diffstat (limited to 'docs/guides/websocket/simple.md')
-rw-r--r-- | docs/guides/websocket/simple.md | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/guides/websocket/simple.md b/docs/guides/websocket/simple.md new file mode 100644 index 000000000..5aabf2fdf --- /dev/null +++ b/docs/guides/websocket/simple.md @@ -0,0 +1,33 @@ +--- +name: Build a simple WebSocket server +--- + +Start a simple WebSocket server using [`Bun.serve`](/docs/api/http). + +Inside `fetch`, we attempt to upgrade incoming `ws:` or `wss:` requests to WebSocket connections. + +```ts +const server = Bun.serve<{ authToken: string }>({ + 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: { + // 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 localhost:\${server.port}`); +``` |