From d0ceb7b82a0ccd7e553bca7abe2459e923bf1ddf Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Sat, 23 Aug 2025 15:52:19 +0800
Subject: [PATCH] yml配置
---
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java | 75 ++++++++++++++++++++++++-------------
1 files changed, 48 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 6c310e3..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;
@@ -17,32 +16,54 @@
public class WebSocketClientBeanConfig {
-// @Bean
-// public Map<String, WebSocketClient> websocketRunClientMap() {
-//
-// Map<String, WebSocketClient> retMap = new HashMap<>(2);
-// try {
-// WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("JS_IN_WS_URL")),EStockType.IN);
-// websocketRunClient.connect();
-// websocketRunClient.setConnectionLostTimeout(0);
-// new Thread(() -> {
-// while (true) {
-// try {
-// Thread.sleep(8000);
-// websocketRunClient.send("heartbeat".getBytes());
-// } catch (Exception e) {
-// websocketRunClient.reconnect();
-// websocketRunClient.setConnectionLostTimeout(0);
-// }
-// }
-// }).start();
-// } catch (Exception e) {
-// }
-//
-//
-//
-// return retMap;
-// }
+ @Bean
+ public Map<String, WebSocketClient> websocketRunClientMap() {
+
+ Map<String, WebSocketClient> retMap = new HashMap<>(2);
+ try {
+ 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 {
+ client.reconnect();
+ client.setConnectionLostTimeout(0);
+ } catch (Exception re) {
+ log.error("重连失败: {}", re.getMessage());
+ }
+ }
+ }
+ }).start();
+ }
}
--
Gitblit v1.9.3