diff --git a/src/server.tsx b/src/server.tsx index 6037761..144b08c 100644 --- a/src/server.tsx +++ b/src/server.tsx @@ -37,20 +37,17 @@ app.get("/tunnel", c => { if (subdomain && connections[subdomain]) return c.text("subdomain taken", 502) + const name = subdomain || randomName() + return upgradeWebSocket(c, { async onOpen(_event, ws) { - const name = subdomain || randomName() connections[name] = { app, ws } console.log(`connection opened: ${name} -> ${app}`) send(ws, { subdomain: name }) }, onClose: (_event, ws) => { - for (const name of Object.keys(connections)) - if (connections[name]?.ws === ws) { - console.log("connection closed:", name) - delete connections[name] - break - } + console.log("connection closed:", name) + delete connections[name] }, async onMessage(event, _ws) { const msg = JSON.parse(event.data.toString())