diff --git a/5-network/11-websocket/article.md b/5-network/11-websocket/article.md
index 2ae9dc2c..c9471595 100644
--- a/5-network/11-websocket/article.md
+++ b/5-network/11-websocket/article.md
@@ -36,12 +36,13 @@ Here's an example:
let socket = new WebSocket("wss://javascript.info/article/websocket/demo/hello");
socket.onopen = function(e) {
- alert("[open] Connection established, send the data -> server");
+ alert("[open] Connection established");
+ alert("Sending to server");
socket.send("My name is John");
};
socket.onmessage = function(event) {
- alert(`[message] Data received: ${event.data} <- server`);
+ alert(`[message] Data received from server: ${event.data}`);
};
socket.onclose = function(event) {
diff --git a/5-network/11-websocket/demo.view/server.js b/5-network/11-websocket/demo.view/server.js
index 7b17734d..111a7ce7 100644
--- a/5-network/11-websocket/demo.view/server.js
+++ b/5-network/11-websocket/demo.view/server.js
@@ -9,8 +9,9 @@ function accept(req, res) {
res.end();
return;
}
+
// can be Connection: keep-alive, Upgrade
- if (req.headers.connection.match(/\bupgrade\b/i)) {
+ if (!req.headers.connection.match(/\bupgrade\b/i)) {
res.end();
return;
}
@@ -20,8 +21,8 @@ function accept(req, res) {
function onConnect(ws) {
ws.on('message', function (message) {
- let name = message.match(/\w+$/) || "Guest";
- ws.send(`Hello, ${name}!`);
+ let name = message.match(/([\p{Alpha}\p{M}\p{Nd}\p{Pc}\p{Join_C}]+)$/gu) || "Guest";
+ ws.send(`Hello from server, ${name}!`);
setTimeout(() => ws.close(1000, "Bye!"), 5000);
});
diff --git a/5-network/11-websocket/websocket-handshake.svg b/5-network/11-websocket/websocket-handshake.svg
index 38c4a5a2..ab3d54c4 100644
--- a/5-network/11-websocket/websocket-handshake.svg
+++ b/5-network/11-websocket/websocket-handshake.svg
@@ -9,27 +9,27 @@
Browser
-
+
- Server
+ Server
-
-
+
+
+
- HTTP-request
+ HTTP-request
- "Hey, server, let's talk WebSocket?"
+ "Hey, server, let's talk WebSocket?"
-
- HTTP-response
- "Okay!"
+ HTTP-response
+ "Okay!"
-
+
- WebSocket protocol
+ WebSocket protocol
diff --git a/figures.sketch b/figures.sketch
index e32a0524..93289aef 100644
Binary files a/figures.sketch and b/figures.sketch differ