From 807839aee63cc115f89326e1c0a8703ef40b71b2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sun, 04 Jan 2026 16:38:13 +0800
Subject: [PATCH] fix(websocket): 修复心跳处理逻辑
---
src/main/java/com/xcong/excoin/modules/newPrice/OkxNewPriceWebSocketClient.java | 26 +++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/newPrice/OkxNewPriceWebSocketClient.java b/src/main/java/com/xcong/excoin/modules/newPrice/OkxNewPriceWebSocketClient.java
index 4b1200a..9feb015 100644
--- a/src/main/java/com/xcong/excoin/modules/newPrice/OkxNewPriceWebSocketClient.java
+++ b/src/main/java/com/xcong/excoin/modules/newPrice/OkxNewPriceWebSocketClient.java
@@ -46,7 +46,11 @@
private static final String CHANNEL_OPEN_INTEREST = "open-interest";
private static final String[] INST_IDS = {
- "EOS-USDT","BTC-USDT", "ETH-USDT", "XRP-USDT", "LTC-USDT", "BCH-USDT", "ETC-USDT"
+ "BTC-USDT", "ETH-USDT", "XRP-USDT", "LTC-USDT", "BCH-USDT", "ETC-USDT"
+ };
+ //BTC-USDT-SWAP
+ private static final String[] INST_IDS_INTEREST = {
+ "BTC-USDT-SWAP", "ETH-USDT-SWAP", "XRP-USDT-SWAP", "LTC-USDT-SWAP", "BCH-USDT-SWAP", "ETC-USDT-SWAP"
};
// 心跳超时时间(秒),小于30秒
@@ -189,7 +193,7 @@
subscribeMsg.put("op", "subscribe");
JSONArray argsArray = new JSONArray();
- for (String instId : INST_IDS) {
+ for (String instId : INST_IDS_INTEREST) {
JSONObject arg = new JSONObject();
arg.put("channel", CHANNEL_OPEN_INTEREST);
arg.put("instId", instId);
@@ -209,6 +213,12 @@
*/
private void handleWebSocketMessage(String message) {
try {
+
+ if ("pong".equals(message)) {
+ log.debug("{}: 收到心跳响应");
+ cancelPongTimeout();
+ return;
+ }
JSONObject response = JSON.parseObject(message);
String event = response.getString("event");
@@ -217,9 +227,6 @@
} else if ("error".equals(event)) {
log.error("价格订阅错误: code={}, msg={}",
response.getString("code"), response.getString("msg"));
- } else if ("pong".equals(event)) {
- log.debug("收到pong响应");
- cancelPongTimeout();
} else {
processPushData(response);
}
@@ -323,11 +330,6 @@
String redisKey = "volume:" + buildRedisKey(instId);
redisUtils.set(redisKey, oiUsd);
- String symbol = CoinTypeConvert.okxConvert(instId);
- if (symbol != null) {
- redisUtils.set(CoinTypeConvert.convertToVolumeKey(symbol), oiUsd);
- }
-
log.debug("更新持仓量: {} = {}, 时间: {}", redisKey, oiUsd, ts);
} catch (Exception innerEx) {
log.warn("处理单条价格数据失败", innerEx);
@@ -401,9 +403,7 @@
private void sendPing() {
try {
if (webSocketClient != null && webSocketClient.isOpen()) {
- JSONObject ping = new JSONObject();
- ping.put("op", "ping");
- webSocketClient.send(ping.toJSONString());
+ webSocketClient.send("ping");
log.debug("发送ping请求");
}
} catch (Exception e) {
--
Gitblit v1.9.1