From ffefd2005c897915e02381983f005ac57e09dd5f Mon Sep 17 00:00:00 2001 From: gubaojian Date: Mon, 9 Jun 2025 15:33:11 +0800 Subject: [PATCH] lost detect logic for case a lot of message in queue. such as 200*1024 message in queue, which will need more time than lost time out. --- src/main/java/org/java_websocket/AbstractWebSocket.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/java_websocket/AbstractWebSocket.java b/src/main/java/org/java_websocket/AbstractWebSocket.java index ae9ce182..ec2bab7e 100644 --- a/src/main/java/org/java_websocket/AbstractWebSocket.java +++ b/src/main/java/org/java_websocket/AbstractWebSocket.java @@ -246,7 +246,7 @@ private void executeConnectionLostDetection(WebSocket webSocket, long minimumPon return; } WebSocketImpl webSocketImpl = (WebSocketImpl) webSocket; - if (webSocketImpl.getLastPong() < minimumPongTime) { + if (webSocketImpl.outQueue.isEmpty() && webSocketImpl.getLastPong() < minimumPongTime) { log.trace("Closing connection due to no pong received: {}", webSocketImpl); webSocketImpl.closeConnection(CloseFrame.ABNORMAL_CLOSE, "The connection was closed because the other endpoint did not respond with a pong in time. For more information check: https://github.com/TooTallNate/Java-WebSocket/wiki/Lost-connection-detection");