Administrator
7 days ago 807839aee63cc115f89326e1c0a8703ef40b71b2
src/main/java/com/xcong/excoin/modules/newPrice/OkxNewPriceWebSocketClient.java
@@ -48,6 +48,10 @@
    private static final String[] INST_IDS = {
            "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秒
    private static final int HEARTBEAT_TIMEOUT = 10;
@@ -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) {