From f3c753b645d90983e73b3de4ae0626747af15a67 Mon Sep 17 00:00:00 2001 From: Morris Brodersen Date: Fri, 24 Nov 2023 16:39:28 +0100 Subject: [PATCH] warn when dev server disconnects --- dev/client.js | 5 +++++ dev/server.mjs | 18 +++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/dev/client.js b/dev/client.js index 7ed4e4e..2732049 100644 --- a/dev/client.js +++ b/dev/client.js @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ const socket = new WebSocket( `${(location.protocol === 'http:' ? 'ws://' : 'wss://') + location.host}/`, ); @@ -28,3 +29,7 @@ socket.addEventListener('message', (message) => { // otherwise, reload page if (reload) location.reload(); }); + +socket.addEventListener('close', () => { + console.warn('Development server disconnected'); +}); diff --git a/dev/server.mjs b/dev/server.mjs index 3e8a427..4af0656 100644 --- a/dev/server.mjs +++ b/dev/server.mjs @@ -125,20 +125,20 @@ server.listen(port); // WebSocket server -const wsClients = new Set(); -const wsServer = new WebSocketServer({ server }); +const webSocketServer = new WebSocketServer({ server }); +const webSockets = new Set(); -wsServer.on('connection', (client) => { - wsClients.add(client); +webSocketServer.on('connection', (client) => { + webSockets.add(client); }); function broadcast(message) { - for (const wsClient of wsClients) { - if (wsClient.readyState === WebSocket.OPEN) { - wsClient.send(JSON.stringify(message)); + for (const webSocket of webSockets) { + if (webSocket.readyState === WebSocket.OPEN) { + webSocket.send(JSON.stringify(message)); } else { - wsClients.delete(wsClient); - wsClient.terminate(); + webSockets.delete(webSocket); + webSocket.terminate(); } } }