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