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