diff options
Diffstat (limited to 'docs/guides/websocket/upgrade.md')
-rw-r--r-- | docs/guides/websocket/upgrade.md | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/docs/guides/websocket/upgrade.md b/docs/guides/websocket/upgrade.md new file mode 100644 index 000000000..cec8c3802 --- /dev/null +++ b/docs/guides/websocket/upgrade.md @@ -0,0 +1,28 @@ +--- +name: Upgrade an HTTP request to a WebSocket connection +--- + +Inside `fetch`, use the `server.upgrade()` function to upgrade an incoming `Request` to a WebSocket connection. Bun automatically returns a 101 Switching Protocols response if the upgrade succeeds. + +Refer to the [WebSocket docs](/docs/api/websockets) for more information on building WebSocket servers. + +```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: { + // define websocket handlers + }, +}); + +console.log(`Listening on localhost:\${server.port}`); +``` |