Files
gitea-pages/examples/js_ws_event/event.js
ExplodingDragon dedcd58f8e 重构 async
2025-11-20 12:42:05 +08:00

28 lines
564 B
JavaScript

const name = (await request.getQuery("name"))?.trim();
if (!name) {
throw new Error(`Missing or empty name parameter`);
}
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()
}));
}
}
} finally {
ws.close();
}