From 1e792f025712da88d5f53e7ef22462301d6cf071 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 13 May 2026 17:22:06 +0800
Subject: [PATCH] refactor(okxNewPrice): 账户配置

---
 src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
index 56ef6d1..510fb0c 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientManager.java
@@ -48,11 +48,6 @@
             gridTradeService = new OkxGridTradeService(config, accountName);
             gridTradeService.startGrid();
 
-            wsKlineClient = new OkxKlineWebSocketClient(config.getWsKlineUrl());
-            wsKlineClient.addChannelHandler(new OkxCandlestickChannelHandler(config.getContract(), gridTradeService));
-            wsKlineClient.init();
-            log.info("[管理器] K线WS已连接, 已注册K线频道处理器");
-
             wsPrivateClient = new OkxKlineWebSocketClient(
                     config.getWsPrivateUrl(),
                     config.getApiKey(),
@@ -61,10 +56,22 @@
             wsPrivateClient.addChannelHandler(new OkxPositionsChannelHandler(config.getContract(), gridTradeService));
             wsPrivateClient.addChannelHandler(new OkxAccountChannelHandler());
             wsPrivateClient.addChannelHandler(new OkxOrderInfoChannelHandler(config.getContract(), gridTradeService, config));
-            wsPrivateClient.init();
-            log.info("[管理器] 私有WS已连接, 已注册 3 个频道处理器");
 
+            wsPrivateClient.setOnLoginSuccess(() -> {
+                log.info("[管理器] 私有WS登录完成,启动K线订阅");
+                try {
+                    wsKlineClient = new OkxKlineWebSocketClient(config.getWsKlineUrl());
+                    wsKlineClient.addChannelHandler(new OkxCandlestickChannelHandler(config.getContract(), gridTradeService));
+                    wsKlineClient.init();
+                    log.info("[管理器] K线WS已连接, 已注册K线频道处理器");
+                } catch (Exception e) {
+                    log.error("[管理器] K线WS初始化失败", e);
+                }
+            });
+
+            wsPrivateClient.init();
             gridTradeService.setWebSocketClient(wsPrivateClient.getWebSocketClient());
+            log.info("[管理器] 私有WS已连接, 等待登录完成...");
 
         } catch (Exception e) {
             log.error("[管理器] 初始化失败", e);

--
Gitblit v1.9.1