From a34d020bc6b252e842f042d935c7a0e6444460cf Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 17 May 2025 21:31:42 -0400 Subject: sync --- js/src/server/server.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 js/src/server/server.ts (limited to 'js/src/server') diff --git a/js/src/server/server.ts b/js/src/server/server.ts new file mode 100644 index 000000000..6266e9421 --- /dev/null +++ b/js/src/server/server.ts @@ -0,0 +1,34 @@ +import { Log } from "../util/log"; + +export namespace RPC { + const log = Log.create({ service: "rpc" }); + const PORT = 16713; + export function listen(input?: { port?: number }) { + const port = input?.port ?? PORT; + log.info("trying", { port }); + try { + const server = Bun.serve({ + port, + websocket: { + open() {}, + message() {}, + }, + routes: { + "/ws": (req, server) => { + if (server.upgrade(req)) return; + return new Response("Not a websocket request", { status: 400 }); + }, + }, + }); + log.info("listening", { port }); + return { + server, + }; + } catch (e: any) { + if (e?.code === "EADDRINUSE") { + return listen({ port: port + 1 }); + } + throw e; + } + } +} -- cgit v1.2.3