22 lines
663 B
JavaScript
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()]))(); |