diff --git a/src/main/java/com/huobi/constant/enums/ConnectionStateEnum.java b/src/main/java/com/huobi/constant/enums/ConnectionStateEnum.java index 0eb45adf..440e0272 100644 --- a/src/main/java/com/huobi/constant/enums/ConnectionStateEnum.java +++ b/src/main/java/com/huobi/constant/enums/ConnectionStateEnum.java @@ -2,6 +2,7 @@ public enum ConnectionStateEnum { IDLE, + CONNECTING, DELAY_CONNECT, CONNECTED, CLOSED_ON_ERROR diff --git a/src/main/java/com/huobi/service/huobi/connection/HuobiWebSocketConnection.java b/src/main/java/com/huobi/service/huobi/connection/HuobiWebSocketConnection.java index 64381b0a..f00e2131 100644 --- a/src/main/java/com/huobi/service/huobi/connection/HuobiWebSocketConnection.java +++ b/src/main/java/com/huobi/service/huobi/connection/HuobiWebSocketConnection.java @@ -152,8 +152,12 @@ void connect() { log.info("[Connection][" + this.getId() + "] Already connected"); return; } + state = ConnectionStateEnum.CONNECTING; log.info("[Connection][" + this.getId() + "] Connecting..."); webSocket = ConnectionFactory.createWebSocket(okhttpRequest, this); + if (options.isWebSocketAutoConnect()) { + WebSocketWatchDog.onConnectionCreated(this); + } } public void reConnect(int delayInSecond) { @@ -352,9 +356,7 @@ public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); this.webSocket = webSocket; log.info("[Connection][" + this.getId() + "] Connected to server"); - if (options.isWebSocketAutoConnect()) { - WebSocketWatchDog.onConnectionCreated(this); - } + state = ConnectionStateEnum.CONNECTED; lastReceivedTime = System.currentTimeMillis(); diff --git a/src/main/java/com/huobi/utils/WebSocketWatchDog.java b/src/main/java/com/huobi/utils/WebSocketWatchDog.java index 644875cd..471eb0b2 100644 --- a/src/main/java/com/huobi/utils/WebSocketWatchDog.java +++ b/src/main/java/com/huobi/utils/WebSocketWatchDog.java @@ -58,6 +58,6 @@ public static void onConnectionCreated(WebSocketConnection connection) { } public static void onClosedNormally(WebSocketConnection connection) { - TIME_HELPER.remove(connection); + TIME_HELPER.remove(connection.getConnectionId()); } }