From e45e705c22df5bc979e72db6014dd1ff9637be42 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 24 Jun 2026 22:21:58 +0800
Subject: [PATCH] fix(okx): 修复网格交易成交日志记录问题

---
 src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java b/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java
index 33b26f0..1bd14b6 100644
--- a/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxKlineWebSocketClient.java
@@ -4,7 +4,6 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.xcong.excoin.modules.okxApi.wsHandler.OkxChannelHandler;
-import com.xcong.excoin.modules.okxNewPrice.utils.SSLConfig;
 import lombok.extern.slf4j.Slf4j;
 import org.java_websocket.client.WebSocketClient;
 import org.java_websocket.handshake.ServerHandshake;
@@ -14,15 +13,11 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
-import java.text.SimpleDateFormat;
-import java.time.Instant;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Base64;
-import java.util.Date;
 import java.util.List;
-import java.util.TimeZone;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
@@ -136,8 +131,11 @@
     /** 私有频道连接状态 */
     private final AtomicBoolean isPrivateConnected = new AtomicBoolean(false);
 
-    /** 连接中标记,防重入 */
-    private final AtomicBoolean isConnecting = new AtomicBoolean(false);
+    /** 公开频道连接中标记,防重入 */
+    private final AtomicBoolean isPublicConnecting = new AtomicBoolean(false);
+
+    /** 私有频道连接中标记,防重入 */
+    private final AtomicBoolean isPrivateConnecting = new AtomicBoolean(false);
 
     /** 初始化标记,防重复 init */
     private final AtomicBoolean isInitialized = new AtomicBoolean(false);
@@ -307,7 +305,8 @@
         String wsUrl = isPrivate ? config.getWsPrivateUrl() : config.getWsPublicUrl();
         String label = isPrivate ? "私有" : "公开";
 
-        if (isConnecting.get() || !isConnecting.compareAndSet(false, true)) {
+        AtomicBoolean connectingFlag = isPrivate ? isPrivateConnecting : isPublicConnecting;
+        if (connectingFlag.get() || !connectingFlag.compareAndSet(false, true)) {
             log.info("[OKX-WS] 连接进行中,跳过重复{} WS请求", label);
             return;
         }
@@ -320,7 +319,7 @@
                 @Override
                 public void onOpen(ServerHandshake handshake) {
                     log.info("[OKX-WS] {} WS连接成功", label);
-                    isConnecting.set(false);
+                    connectingFlag.set(false);
 
                     if (isPrivate) {
                         isPrivateConnected.set(true);
@@ -356,7 +355,7 @@
                     } else {
                         isPublicConnected.set(false);
                     }
-                    isConnecting.set(false);
+                    connectingFlag.set(false);
                     cancelPongTimeout();
 
                     if (sharedExecutor != null && !sharedExecutor.isShutdown() && !sharedExecutor.isTerminated()) {
@@ -377,6 +376,7 @@
                 @Override
                 public void onError(Exception ex) {
                     log.error("[OKX-WS] {} WS发生错误", label, ex);
+                    connectingFlag.set(false);
                     if (isPrivate) {
                         isPrivateConnected.set(false);
                     } else {
@@ -394,7 +394,7 @@
             }
         } catch (URISyntaxException e) {
             log.error("[OKX-WS] URI格式错误: {}", wsUrl, e);
-            isConnecting.set(false);
+            connectingFlag.set(false);
         }
     }
 

--
Gitblit v1.9.1