diff --git a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java index 5c0849fb..a27e1782 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcHandler.java @@ -294,23 +294,23 @@ public class RpcHandler extends DefaultJsonRpcHandler { @Override public void afterConnectionEstablished(Session rpcSession) throws Exception { - log.info("Connection established for WebSocket session: {}", rpcSession.getSessionId()); + log.info("After connection established for WebSocket session: {}", rpcSession.getSessionId()); } @Override public void afterConnectionClosed(Session rpcSession, String status) throws Exception { - log.info("Connection closed for WebSocket session: {} - Status: {}", rpcSession.getSessionId(), status); - - RpcConnection rpc = this.notificationService.closeRpcSession(rpcSession.getSessionId()); - - if (rpc != null && rpc.getSessionId() != null) { - io.openvidu.server.core.Session session = this.sessionManager.getSession(rpc.getSessionId()); - if (session != null && session.getParticipantByPrivateId(rpc.getParticipantPrivateId()) != null) { - leaveRoomAfterConnClosed(rpc.getParticipantPrivateId(), "networkDisconnect"); + log.info("After connection closed for WebSocket session: {} - Status: {}", rpcSession.getSessionId(), status); + + if ("Close for not receive ping from client".equals(status)) { + RpcConnection rpc = this.notificationService.closeRpcSession(rpcSession.getSessionId()); + if (rpc != null && rpc.getSessionId() != null) { + io.openvidu.server.core.Session session = this.sessionManager.getSession(rpc.getSessionId()); + if (session != null && session.getParticipantByPrivateId(rpc.getParticipantPrivateId()) != null) { + leaveRoomAfterConnClosed(rpc.getParticipantPrivateId(), "networkDisconnect"); + } } } - this.notificationService.showRpcConnections(); String rpcSessionId = rpcSession.getSessionId(); if (this.webSocketTransportError.get(rpcSessionId) != null) { log.warn( diff --git a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java index d965f34e..db19a138 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rpc/RpcNotificationService.java @@ -112,6 +112,7 @@ public class RpcNotificationService { try { s.close(); log.info("Closed session for participant with private id {}", participantPrivateId); + this.showRpcConnections(); return rpcSession; } catch (IOException e) { log.error("Error closing session for participant with private id {}", participantPrivateId, e);