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 | 111 +++++++++++++++++++++++++++++++------------------------
1 files changed, 63 insertions(+), 48 deletions(-)
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 355774e..38ba2d2 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -1,48 +1,63 @@
-//package com.nq.ws;
-//
-//
-//import com.nq.enums.EStockType;
-//import com.nq.utils.PropertiesUtil;
-//import lombok.extern.slf4j.Slf4j;
-//import org.java_websocket.client.WebSocketClient;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//
-//import java.net.URI;
-//import java.util.HashMap;
-//import java.util.Map;
-//
-//@Slf4j
-//@Configuration
-//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;
-// }
-//
-//
-//}
+package com.nq.ws;
+
+
+import com.nq.enums.EStockType;
+import com.nq.utils.PropertiesUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.java_websocket.client.WebSocketClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Configuration
+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);
+ retMap.put(EStockType.IN.getCode(), websocketRunClient);
+ new Thread(() -> {
+ 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) {
+ log.warn("印度股票 websocket 保活异常: {}", e.getMessage());
+ try {
+ websocketRunClient.reconnectBlocking();
+ websocketRunClient.setConnectionLostTimeout(0);
+ } catch (Exception reconnectEx) {
+ log.warn("印度股票 websocket 重连失败: {}", reconnectEx.getMessage());
+ }
+ }
+ }
+ }, "ws-in-keepalive").start();
+ } catch (Exception e) {
+ log.error("印度股票 websocket 初始化失败", e);
+ }
+
+ return retMap;
+ }
+
+
+}
--
Gitblit v1.9.3