From 32ee67f16729ce809e7f144549528a0f7cfd7aee Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 04 Jun 2026 21:26:13 +0800
Subject: [PATCH] feat(ws): 添加WebSocket订阅状态追踪功能
---
src/main/java/com/xcong/excoin/modules/gateApi/GateKlineWebSocketClient.java | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateKlineWebSocketClient.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateKlineWebSocketClient.java
index 156c76b..811bb20 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateKlineWebSocketClient.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateKlineWebSocketClient.java
@@ -258,6 +258,12 @@
}
if ("subscribe".equals(event)) {
log.info("[WS] {} 订阅成功: {}", channel, response.getJSONObject("result"));
+ for (GateChannelHandler handler : channelHandlers) {
+ if (channel.equals(handler.getChannelName())) {
+ handler.setSubscribed(true);
+ break;
+ }
+ }
return;
}
if ("unsubscribe".equals(event)) {
@@ -282,6 +288,17 @@
}
}
+ /**
+ * 检查所有已注册的频道是否都已收到订阅成功确认。
+ */
+ public boolean areAllSubscribed() {
+ if (channelHandlers.isEmpty()) return false;
+ for (GateChannelHandler h : channelHandlers) {
+ if (!h.isSubscribed()) return false;
+ }
+ return true;
+ }
+
// ---- heartbeat ----
/**
--
Gitblit v1.9.1