-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient.js
More file actions
40 lines (33 loc) · 839 Bytes
/
client.js
File metadata and controls
40 lines (33 loc) · 839 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import WebSocket from "ws";
import readline from "node:readline";
const ws = new WebSocket("ws://localhost:8080/");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
try {
ws.on("open", () => {
console.log("Connected to server.");
rl.prompt();
rl.on("line", (userMsg) => {
ws.send(userMsg);
rl.prompt();
});
});
ws.on("error", console.error);
ws.on("message", function message(data) {
readline.clearLine(process.stdout, 0);
readline.cursorTo(process.stdout, 0);
console.log(`${data}`);
rl.prompt();
});
ws.on("close", () => {
console.log("Disconnected from server.");
rl.close();
});
ws.on("error", (err) => {
console.error("WebSocket error:", err.message);
});
} catch (error) {
console.log("Server error...");
}