import { WebSocket } from "ws"; let cliId = 1; function newClient(room, interval) { const id = cliId++; let messageId = 0; console.log(`Client #${id} room is`, room) const ws = new WebSocket(`ws://localhost:8080/${room}`); ws.addEventListener("open", () => { ws.addEventListener("message", ev => { console.log(`[Client#${id}] Received message:`, ev.data.toString()); }); const int = setInterval(() => { console.log(`[Client#${id}] Sending message ${messageId}`); ws.send(`Message#${messageId++} from Client#${id}`); }, interval); ws.addEventListener("close", () => { console.log(`[Client#${id}] Closed`); clearInterval(int); }); }); return ws; } const user1 = newClient("foo", 900); const user2 = newClient("bar", 500); const user3 = newClient("foo", 400); const user4 = newClient("bar", 800); setTimeout(() => { user1.close(); user2.close(); user3.close(); user4.close(); }, 4000);