diff --git a/src/server.tsx b/src/server.tsx index 520665f..6037761 100644 --- a/src/server.tsx +++ b/src/server.tsx @@ -30,13 +30,16 @@ const app = new Hono app.get("/tunnel", c => { const app = c.req.query("app") - if (!app) { + if (!app) return c.text("need ?app name", 502) - } + + const subdomain = c.req.query("subdomain") || "" + if (subdomain && connections[subdomain]) + return c.text("subdomain taken", 502) return upgradeWebSocket(c, { async onOpen(_event, ws) { - const name = randomName() + const name = subdomain || randomName() connections[name] = { app, ws } console.log(`connection opened: ${name} -> ${app}`) send(ws, { subdomain: name })