blob: 6266e94215b11cf476c470af4a3d0643d9e2f7b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
}
}
}
|