From afeb783de365eb4d76d8239b2e14e0120f0787b0 Mon Sep 17 00:00:00 2001 From: MactavishCui Date: Fri, 17 Jan 2025 22:50:16 +0800 Subject: [PATCH 1/2] Web socket Opt --- dinky-admin/src/main/java/org/dinky/ws/GlobalWebSocket.java | 4 +++- dinky-web/src/models/UseWebSocketModel.tsx | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dinky-admin/src/main/java/org/dinky/ws/GlobalWebSocket.java b/dinky-admin/src/main/java/org/dinky/ws/GlobalWebSocket.java index 9d94b3872f..68a994d221 100644 --- a/dinky-admin/src/main/java/org/dinky/ws/GlobalWebSocket.java +++ b/dinky-admin/src/main/java/org/dinky/ws/GlobalWebSocket.java @@ -94,7 +94,9 @@ public enum EventType { private static final Map TOPICS = new ConcurrentHashMap<>(); @OnOpen - public void onOpen(Session session) {} + public void onOpen(Session session) { + session.setMaxIdleTimeout(30000); + } @OnClose public void onClose(Session session) { diff --git a/dinky-web/src/models/UseWebSocketModel.tsx b/dinky-web/src/models/UseWebSocketModel.tsx index 677534eb36..057948af4d 100644 --- a/dinky-web/src/models/UseWebSocketModel.tsx +++ b/dinky-web/src/models/UseWebSocketModel.tsx @@ -59,7 +59,7 @@ export default () => { const ws = useRef(); const reconnect = () => { - if (ws.current && ws.current.readyState === WebSocket.CLOSED) { + if (ws.current && ws.current.readyState === WebSocket.OPEN) { ws.current.close(); } ws.current = new WebSocket(wsUrl); @@ -119,9 +119,9 @@ export default () => { reconnect(); } else { const currentTime = new Date().getTime(); - if (currentTime - lastPongTimeRef.current > 15000) { + if (currentTime - lastPongTimeRef.current > 15) { reconnect(); - } else if (currentTime - lastPongTimeRef.current > 5000) { + } else if (currentTime - lastPongTimeRef.current > 5) { const token = JSON.parse(localStorage.getItem(TOKEN_KEY) ?? '{}')?.tokenValue; ws.current.send(JSON.stringify({ token, type: 'PING' })); } From 0aebaa8d29040991af3d41d3fa75f35272e3dda5 Mon Sep 17 00:00:00 2001 From: MactavishCui Date: Fri, 17 Jan 2025 22:54:45 +0800 Subject: [PATCH 2/2] Time roll back --- dinky-web/src/models/UseWebSocketModel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dinky-web/src/models/UseWebSocketModel.tsx b/dinky-web/src/models/UseWebSocketModel.tsx index 057948af4d..2344fd2e73 100644 --- a/dinky-web/src/models/UseWebSocketModel.tsx +++ b/dinky-web/src/models/UseWebSocketModel.tsx @@ -119,9 +119,9 @@ export default () => { reconnect(); } else { const currentTime = new Date().getTime(); - if (currentTime - lastPongTimeRef.current > 15) { + if (currentTime - lastPongTimeRef.current > 15000) { reconnect(); - } else if (currentTime - lastPongTimeRef.current > 5) { + } else if (currentTime - lastPongTimeRef.current > 5000) { const token = JSON.parse(localStorage.getItem(TOKEN_KEY) ?? '{}')?.tokenValue; ws.current.send(JSON.stringify({ token, type: 'PING' })); }