From ed02adce53d9f51287e14764815006dd4d040daf Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 18 Jun 2026 21:25:46 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/ws/WebSocketClientBeanConfig.java |   51 ++++++++++++++++++++++-----------------------------
 1 files changed, 22 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 639832f..38ba2d2 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -21,46 +21,39 @@
     public Map<String, WebSocketClient> websocketRunClientMap() {
 
         Map<String, WebSocketClient> retMap = new HashMap<>(2);
-
-
-
-
         try {
-            WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("MAS_WS_URL")));
+            WebsocketRunClient websocketRunClient = new WebsocketRunClient(
+                    new URI(PropertiesUtil.getProperty("JS_IN_WS_URL")), EStockType.IN);
             websocketRunClient.connect();
             websocketRunClient.setConnectionLostTimeout(0);
+            retMap.put(EStockType.IN.getCode(), websocketRunClient);
             new Thread(() -> {
-                while (true) {
+                while (!Thread.currentThread().isInterrupted()) {
                     try {
                         Thread.sleep(8000);
+                        if (!websocketRunClient.isOpen()) {
+                            log.warn("印度股票 websocket 未连接,尝试重连");
+                            websocketRunClient.reconnectBlocking();
+                            websocketRunClient.setConnectionLostTimeout(0);
+                            continue;
+                        }
                         websocketRunClient.send("heartbeat".getBytes());
+                    } catch (InterruptedException e) {
+                        Thread.currentThread().interrupt();
+                        break;
                     } catch (Exception e) {
-                        websocketRunClient.reconnect();
-                        websocketRunClient.setConnectionLostTimeout(0);
+                        log.warn("印度股票 websocket 保活异常: {}", e.getMessage());
+                        try {
+                            websocketRunClient.reconnectBlocking();
+                            websocketRunClient.setConnectionLostTimeout(0);
+                        } catch (Exception reconnectEx) {
+                            log.warn("印度股票 websocket 重连失败: {}", reconnectEx.getMessage());
+                        }
                     }
                 }
-            }).start();
-            retMap.put(EStockType.IN.getStockKey(), websocketRunClient);
+            }, "ws-in-keepalive").start();
         } catch (Exception e) {
-        }
-
-        try {
-            USWebsocketRunClient usWebsocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")));
-            usWebsocketRunClient.connect();
-            usWebsocketRunClient.setConnectionLostTimeout(0);
-            new Thread(() -> {
-                while (true) {
-                    try {
-                        Thread.sleep(8000);
-                        usWebsocketRunClient.send("heartbeat".getBytes());
-                    } catch (Exception e) {
-                        usWebsocketRunClient.reconnect();
-                        usWebsocketRunClient.setConnectionLostTimeout(0);
-                    }
-                }
-            }).start();
-            retMap.put(EStockType.US.getStockKey(), usWebsocketRunClient);
-        } catch (Exception e) {
+            log.error("印度股票 websocket 初始化失败", e);
         }
 
         return retMap;

--
Gitblit v1.9.3