From 8c0ab1b0ecd90a4b03200485ff33f6194a4b1e07 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 15 Jul 2025 20:21:55 +0800
Subject: [PATCH] 计算持仓市值收益
---
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java | 78 +++++++++++++++++++-------------------
1 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index 7db3159..5e2d6ec 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -21,49 +21,49 @@
public Map<String, WebSocketClient> websocketRunClientMap() {
Map<String, WebSocketClient> retMap = new HashMap<>(2);
-
-
-
-
try {
- WebsocketRunClient websocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")));
- websocketRunClient.connect();
- websocketRunClient.setConnectionLostTimeout(0);
- new Thread(() -> {
- while (true) {
+ WebsocketRunClient usWebsocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")),EStockType.US);
+ usWebsocketRunClient.connect();
+ usWebsocketRunClient.setConnectionLostTimeout(0);
+ startHeartbeatThread(usWebsocketRunClient);
+ retMap.put(EStockType.US.getStockKey(), usWebsocketRunClient);
+ } catch (Exception e) {
+ log.error("usWebsocketRunClient 异常: {}", e.getMessage());
+ }
+ try {
+ MXWebsocketRunClient mxWebsocketRunClient = new MXWebsocketRunClient(new URI(PropertiesUtil.getProperty("MX_WS_URL")),EStockType.MX);
+ mxWebsocketRunClient.connect();
+ mxWebsocketRunClient.setConnectionLostTimeout(0);
+ startHeartbeatThread(mxWebsocketRunClient);
+ retMap.put(EStockType.MX.getStockKey(), mxWebsocketRunClient);
+ } catch (Exception e) {
+ log.error("mxWebsocketRunClient 异常: {}", 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();
- retMap.put(EStockType.IN.getStockKey(), websocketRunClient);
- } catch (Exception e) {
- }
-//
-// try {
-// USWebsocketRunClient usWebsocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("IN_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) {
-// }
-
- return retMap;
+ }
+ }).start();
}
--
Gitblit v1.9.3