From 05c70aec6fb13c9df2c90f84d9411cafe63570a8 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 07 Aug 2025 10:53:50 +0800
Subject: [PATCH] 8.6修改

---
 src/main/java/com/nq/ws/WebSocketClientBeanConfig.java |   55 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 39 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 0b7ebf2..c702380 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -1,6 +1,5 @@
 package com.nq.ws;
 
-
 import com.nq.enums.EStockType;
 import com.nq.utils.PropertiesUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -22,24 +21,48 @@
 
         Map<String, WebSocketClient> retMap = new HashMap<>(2);
         try {
-            WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI("wss://ws.durocaspitall.com/websocket-server"),EStockType.IN);
-            websocketRunClient.connect();
-            websocketRunClient.setConnectionLostTimeout(0);
-            new Thread(() -> {
-                while (true) {
+            WebsocketRunClient hkWebsocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("HK_WS_URL")), EStockType.HK);
+            hkWebsocketRunClient.connect();
+            hkWebsocketRunClient.setConnectionLostTimeout(0);
+            startHeartbeatThread(hkWebsocketRunClient);
+            retMap.put(EStockType.HK.getStockKey(), hkWebsocketRunClient);
+        } catch (Exception e) {
+            log.error("hkWebsocketRunClient 异常: {}", e.getMessage());
+        }
+        try {
+            TWWebsocketRunClient twWebsocketRunClient = new TWWebsocketRunClient(new URI(PropertiesUtil.getProperty("TW_WS_URL")), EStockType.TW);
+            twWebsocketRunClient.connect();
+            twWebsocketRunClient.setConnectionLostTimeout(0);
+            startHeartbeatThread(twWebsocketRunClient);
+            retMap.put(EStockType.TW.getStockKey(), twWebsocketRunClient);
+        } catch (Exception e) {
+            log.error("twWebsocketRunClient 异常: {}", e.getMessage());
+        }
+        return retMap;
+    }
+
+    private void startHeartbeatThread(WebSocketClient client) {
+        new Thread(() -> {
+            while (true) {
+                try {
+                    Thread.sleep(8000);
+                    if (client.isOpen()) { // 先检查连接状态
+                        client.send("heartbeat".getBytes());
+                    } else {
+                        client.reconnect();
+                        client.setConnectionLostTimeout(0);
+                    }
+                } catch (Exception e) {
+                    log.error("心跳线程异常, 尝试重连: {}", e.getMessage());
                     try {
-                        Thread.sleep(8000);
-                        websocketRunClient.send("heartbeat".getBytes());
-                    } catch (Exception e) {
-                        websocketRunClient.reconnect();
-                        websocketRunClient.setConnectionLostTimeout(0);
+                        client.reconnect();
+                        client.setConnectionLostTimeout(0);
+                    } catch (Exception re) {
+                        log.error("重连失败: {}", re.getMessage());
                     }
                 }
-            }).start();
-        } catch (Exception e) {
-        }
-
-        return retMap;
+            }
+        }).start();
     }
 
 

--
Gitblit v1.9.3