-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient.js
More file actions
42 lines (36 loc) · 1.16 KB
/
Copy pathclient.js
File metadata and controls
42 lines (36 loc) · 1.16 KB
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
41
42
const socket = new WebSocket("ws://127.0.0.1:4400");
const chatForm = document.getElementById("chatForm");
const chatEl = document.getElementById("chat");
const usernameEl = document.getElementById("username");
const messageEl = document.getElementById("message");
socket.addEventListener("open", (event) => {
console.log("Connection with a websocket is opened");
});
socket.addEventListener("close", (event) => {
console.log("Connection with a websocket is closed");
});
socket.addEventListener("error", (event) => {
console.log(`Connection with a websocket has been closed. Error: ${event}`);
});
socket.addEventListener("message", (event) => {
const messages = JSON.parse(event.data);
messages.forEach((msg) => {
const messageEl = document.createElement("div");
messageEl.appendChild(
document.createTextNode(`${msg.username}: ${msg.message}`)
);
chatEl.appendChild(messageEl);
});
});
chatForm.addEventListener("submit", (event) => {
event.preventDefault();
const username = usernameEl.value;
const message = messageEl.value;
socket.send(
JSON.stringify({
username,
message,
})
);
messageEl.value = "";
});