From 958ea58a4d7f1455081d9f21c18621629d0633c0 Mon Sep 17 00:00:00 2001 From: nickbrowne Date: Tue, 28 Jan 2025 11:55:16 +1100 Subject: [PATCH 1/2] Fix stats tracking wss.clients is a Set rather than an Array after ws 2.x https://github.com/websockets/ws/issues/934 --- src/server/websocket.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/websocket.coffee b/src/server/websocket.coffee index e843d96..98606c3 100644 --- a/src/server/websocket.coffee +++ b/src/server/websocket.coffee @@ -43,7 +43,7 @@ exports.attach = (server, createAgent, options) -> if !!options.trackStats setInterval -> options.trackStats - activeWebsocketConnections: wss.clients.length + activeWebsocketConnections: wss.clients.size , STATISTICS_INTERVAL # Clients send out a heartbeat at 10 second intervals, if From 0b6493e5acf72deba86e7ebc3c8199f17cd0045f Mon Sep 17 00:00:00 2001 From: nickbrowne Date: Tue, 28 Jan 2025 11:55:50 +1100 Subject: [PATCH 2/2] Fix inactive client reaping wss.clients is a Set rather than an Array after ws 2.x https://github.com/websockets/ws/issues/934 --- src/server/websocket.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/websocket.coffee b/src/server/websocket.coffee index 98606c3..28b4af2 100644 --- a/src/server/websocket.coffee +++ b/src/server/websocket.coffee @@ -61,7 +61,7 @@ exports.attach = (server, createAgent, options) -> # event, the client would have already established a new connection by the time # the server terminates it from it's side. setInterval -> - for client in wss.clients + wss.clients.forEach (client) -> client.terminate() if !client.isAlive client.isAlive = false , CLIENT_TIMEOUT