diff options
author | 2023-07-26 14:59:39 -0700 | |
---|---|---|
committer | 2023-07-26 14:59:39 -0700 | |
commit | 4c89c60867591b50e0b31bf5009fd5ad6a3cebe1 (patch) | |
tree | fc1d2f47309c0345a850933496baa40d94bfdcbb /docs/guides/websocket/simple.md | |
parent | 6bfee02301a2e2a0b79339974af0445eb5a2688f (diff) | |
download | bun-4c89c60867591b50e0b31bf5009fd5ad6a3cebe1.tar.gz bun-4c89c60867591b50e0b31bf5009fd5ad6a3cebe1.tar.zst bun-4c89c60867591b50e0b31bf5009fd5ad6a3cebe1.zip |
Add files (#3826)
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}`); +``` |