Administrator
2026-06-02 b6bc83543f007d1295cf7cfe46e4991b7f2a8cc4
fix(okxNewPrice): 解决WebSocket连接超时问题

- 设置WebSocket客户端连接丢失超时时间为0
- 防止因默认超时设置导致的意外断开连接
- 提高WebSocket连接的稳定性
2 files modified
16 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/gridWs/OkxAlgoOrdersChannelHandler.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/gridWs/OkxPositionsChannelHandler.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/gridWs/OkxAlgoOrdersChannelHandler.java
@@ -18,12 +18,10 @@
    private static final String CHANNEL_NAME = "orders-algo";
    private final String instId;
    private final String instFamily;
    private final OkxGridTradeService gridTradeService;
    public OkxAlgoOrdersChannelHandler(String instId, OkxGridTradeService gridTradeService) {
        this.instId = instId;
        this.instFamily = instId.contains("-") ? instId.substring(0, instId.lastIndexOf("-")) : instId;
        this.gridTradeService = gridTradeService;
    }
@@ -35,14 +33,13 @@
        JSONObject msg = new JSONObject();
        JSONObject arg = new JSONObject();
        arg.put("channel", CHANNEL_NAME);
        arg.put("instType", "SWAP");
        arg.put("instFamily", instFamily);
        arg.put("instId", instId);
        msg.put("op", "subscribe");
        JSONArray args = new JSONArray();
        args.add(arg);
        msg.put("args", args);
        ws.send(msg.toJSONString());
        log.info("[OKX-WS] {} 订阅成功, instFamily:{}", CHANNEL_NAME, instFamily);
        log.info("[OKX-WS] {} 订阅成功, instId:{}", CHANNEL_NAME, instId);
    }
    @Override
@@ -50,8 +47,7 @@
        JSONObject msg = new JSONObject();
        JSONObject arg = new JSONObject();
        arg.put("channel", CHANNEL_NAME);
        arg.put("instType", "SWAP");
        arg.put("instFamily", instFamily);
        arg.put("instId", instId);
        msg.put("op", "unsubscribe");
        JSONArray args = new JSONArray();
        args.add(arg);
src/main/java/com/xcong/excoin/modules/okxNewPrice/gridWs/OkxPositionsChannelHandler.java
@@ -20,12 +20,10 @@
    private static final String CHANNEL_NAME = "positions";
    private final String instId;
    private final String instFamily;
    private final OkxGridTradeService gridTradeService;
    public OkxPositionsChannelHandler(String instId, OkxGridTradeService gridTradeService) {
        this.instId = instId;
        this.instFamily = instId.contains("-") ? instId.substring(0, instId.lastIndexOf("-")) : instId;
        this.gridTradeService = gridTradeService;
    }
@@ -38,13 +36,12 @@
        JSONObject arg = new JSONObject();
        arg.put("channel", CHANNEL_NAME);
        arg.put("instType", "SWAP");
        arg.put("instFamily", instFamily);
        msg.put("op", "subscribe");
        JSONArray args = new JSONArray();
        args.add(arg);
        msg.put("args", args);
        ws.send(msg.toJSONString());
        log.info("[OKX-WS] {} 订阅成功, instFamily:{}", CHANNEL_NAME, instFamily);
        log.info("[OKX-WS] {} 订阅成功", CHANNEL_NAME);
    }
    @Override
@@ -53,7 +50,6 @@
        JSONObject arg = new JSONObject();
        arg.put("channel", CHANNEL_NAME);
        arg.put("instType", "SWAP");
        arg.put("instFamily", instFamily);
        msg.put("op", "unsubscribe");
        JSONArray args = new JSONArray();
        args.add(arg);