Files
gitea-pages/examples/js_ws_event/event.js
2025-11-21 15:20:02 +08:00

22 lines
663 B
JavaScript

const name = request.getQuery("name")?.trim();
if (!name) throw new Error('Missing or empty name parameter');
const ws = websocket();
const eventPull = async () => {
while (true) await ws.writeText(await event.load('messages'));
};
const messagePull = async () => {
while (true) {
const data = await ws.readText();
if (data?.trim()) {
await event.put("messages", JSON.stringify({
name: name,
data: data === "exit" ? `${name} 已断开连接` : data.trim()
}));
}
if (data === "exit") break;
}
};
(async () => await Promise.any([eventPull(), messagePull()]))();