重构 async

This commit is contained in:
ExplodingDragon
2025-11-20 12:42:05 +08:00
parent d6440ebb02
commit dedcd58f8e
6 changed files with 73 additions and 55 deletions

View File

@@ -1,7 +1,4 @@
routes:
- path: "sender"
js:
exec: "sender.js"
- path: "event"
js:
exec: "event.js"

View File

@@ -1,23 +1,28 @@
let name=request.getQuery("name")
if (name===""){
throw Error(`Missing name "${name}"`)
const name = (await request.getQuery("name"))?.trim();
if (!name) {
throw new Error(`Missing or empty name parameter`);
}
let ws = websocket();
event.subscribe("messages").on(function (msg){
ws.writeText(msg)
})
let shouldExit = false;
while (!shouldExit) {
let data = ws.readText();
switch (data) {
case "exit":
shouldExit = true;
break;
default:
event.put("messages",JSON.stringify({
name:name,
data:data
const ws = websocket();
try {
// 事件处理
event.subscribe("messages").on((msg) => {
ws.writeText(msg);
});
// 主循环
for await (const data of ws.readText()) {
if (data === "exit") break;
if (data?.trim()) {
await event.put("messages", JSON.stringify({
name,
data: data.trim()
}));
break;
}
}
} finally {
ws.close();
}

View File

@@ -1,8 +0,0 @@
let name=request.getQuery("name")
let message=request.getQuery("data")
event.put("messages", JSON.stringify({
name:name,
data:message
}));
// response.write(event.subscribe("messages").get())