From 00e43ddc0bf3d6dd719fc9295d156567fa2fecfb Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 26 Aug 2024 16:28:30 -0700 Subject: switch to bun --- lib/sockets.js | 51 +++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) (limited to 'lib/sockets.js') diff --git a/lib/sockets.js b/lib/sockets.js index 2339c06e..b1fc719c 100644 --- a/lib/sockets.js +++ b/lib/sockets.js @@ -67,20 +67,21 @@ let track = async (ws, token) => { ws.user = user; }; -export async function socketServer(app) { - let seconds = (n, d = new Date()) => d.setSeconds(d.getSeconds() - n) && d; - - app.get("/ws", { websocket: true }, (connection, req) => { - let { socket: ws } = connection; - connection.on("error", (e) => err(e.message)); - - const id = v4(); - ws.id = id; - ws.beats = 0; - ws.send(JSON.stringify({ type: "connected", data: id })); - all[id] = ws; - - ws.on("message", async (message) => { +console.log("starting socket server"); +Bun.serve({ + hostname: "0.0.0.0", + port: 3120, + fetch(req, server) { + console.log("here we go"); + // upgrade the request to a WebSocket + if (server.upgrade(req)) { + console.log("UPGRADING"); + return; // do not return a Response + } + return new Response("Upgrade failed", { status: 500 }); + }, + websocket: { + async message(ws, message) { let type, data; try { @@ -128,11 +129,17 @@ export async function socketServer(app) { default: warn("received socket message of unknown type", type, data); } - }); - - ws.on("error", (e) => {}); - - ws.on("close", function (code, reason) { + }, + open(ws) { + console.log("OPENING"); + const id = v4(); + ws.id = id; + ws.beats = 0; + ws.send(JSON.stringify({ type: "connected", data: id })); + all[id] = ws; + }, + close(ws) { + let { id } = ws; try { const uid = users[id]; if (store.sockets[uid] && store.sockets[uid][id]) { @@ -143,9 +150,9 @@ export async function socketServer(app) { } catch (e) { err("problem closing socket", e.message); } - }); - }); -} + }, + }, +}); export let sendHeartbeat = () => { for (const uid in store.sockets) { -- cgit v1.2.3