Files
gitea-pages/examples/js_ws_event/event.js
ExplodingDragon 827f9bd273 重构 websocket
2025-11-20 23:56:14 +08:00

31 lines
670 B
JavaScript

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