aboutsummaryrefslogtreecommitdiff
path: root/docs/guides/websocket/upgrade.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/guides/websocket/upgrade.md')
-rw-r--r--docs/guides/websocket/upgrade.md28
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}`);
+```