37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
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);
|