diff --git a/clients/common/pom.xml b/clients/common/pom.xml index 09bbcf28..f6f245aa 100644 --- a/clients/common/pom.xml +++ b/clients/common/pom.xml @@ -10,6 +10,6 @@ binance-common common - 2.1.1 + 2.2.1 jar \ No newline at end of file diff --git a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionInterface.java b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionInterface.java index c78da39a..d25befb2 100644 --- a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionInterface.java +++ b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionInterface.java @@ -24,4 +24,6 @@ public interface ConnectionInterface { void setLogonMethods(List logonMethods); void setLogoutMethods(List logoutMethods); + + void stop() throws Exception; } diff --git a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionWrapper.java b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionWrapper.java index 60091145..633dee54 100644 --- a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionWrapper.java +++ b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/ConnectionWrapper.java @@ -49,6 +49,7 @@ import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.http.HttpField; import org.eclipse.jetty.http.HttpHeader; +import org.eclipse.jetty.util.component.LifeCycle; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.StatusCode; import org.eclipse.jetty.websocket.api.WebSocketListener; @@ -92,6 +93,8 @@ public class ConnectionWrapper implements WebSocketListener, ConnectionInterface private List> streamQueues = new ArrayList<>(); + private Timer timer; + public ConnectionWrapper(WebSocketClientConfiguration configuration, Gson gson) { this(configuration, null, gson); } @@ -160,8 +163,8 @@ public ConnectionWrapper( } Integer reconnectAfter = configuration.getReconnectIntervalTime(); - new Timer() - .scheduleAtFixedRate( + this.timer = new Timer(); + this.timer.scheduleAtFixedRate( new TimerTask() { @Override public void run() { @@ -221,6 +224,7 @@ public void connect(Consumer customCallback) CompletableFuture clientSessionPromise = webSocketClient.connect(this, serverURI, clientUpgradeRequest); Session session = clientSessionPromise.join(); + if (callback != null) { callback.accept(session); } @@ -501,6 +505,7 @@ protected void afterConnect(Session session) { if (this.oldSession != null) { this.oldSession.close(StatusCode.NORMAL, "close after reconnect", WriteCallback.NOOP); } + canReconnect = true; setReady(true); } @@ -548,7 +553,17 @@ public URI getUri(String uri) throws URISyntaxException { public void disconnect() { if (this.session != null) { this.session.disconnect(); + } + setReady(false); + canReconnect = false; + } + + public void stop() throws Exception { + if (this.webSocketClient != null) { setReady(false); + canReconnect = false; + timer.cancel(); + webSocketClient.stop(); } } } diff --git a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/PoolConnectionWrapper.java b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/PoolConnectionWrapper.java index 3ce9aa86..8905ae81 100644 --- a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/PoolConnectionWrapper.java +++ b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/PoolConnectionWrapper.java @@ -147,4 +147,12 @@ public void setLogoutMethods(List logoutMethods) { public boolean isConnected() { return isConnected; } + + @Override + public void stop() throws Exception { + for (ConnectionWrapper connectionWrapper : connectionList) { + connectionWrapper.stop(); + } + isConnected = false; + } } diff --git a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionInterface.java b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionInterface.java index b87bc7fd..797f6e67 100644 --- a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionInterface.java +++ b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionInterface.java @@ -21,4 +21,6 @@ Map> subscribe( boolean isConnected(); void setUserAgent(String userAgent); + + void stop() throws Exception; } diff --git a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionPoolWrapper.java b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionPoolWrapper.java index 432ca77f..7e765bf5 100644 --- a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionPoolWrapper.java +++ b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionPoolWrapper.java @@ -154,4 +154,12 @@ public void setUserAgent(String userAgent) { public boolean isConnected() { return isConnected; } + + @Override + public void stop() throws Exception { + for (ConnectionWrapper connectionWrapper : connectionList) { + connectionWrapper.stop(); + } + isConnected = false; + } } diff --git a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionWrapper.java b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionWrapper.java index dcfdaf4d..1fc647fa 100644 --- a/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionWrapper.java +++ b/clients/common/src/main/java/com/binance/connector/client/common/websocket/adapter/stream/StreamConnectionWrapper.java @@ -129,7 +129,7 @@ public void onWebSocketText(String message) { protected void beforeConnect() { // no session, so this is not a reconnect - if (this.session == null) { + if (this.session == null || !this.session.isOpen()) { return; } RequestWrapperDTO> listSubscriptions = diff --git a/clients/derivatives-trading-coin-futures/docs/rest-api/migration-guide.md b/clients/derivatives-trading-coin-futures/docs/rest-api/migration-guide.md index b22dc44e..5e0e7fba 100644 --- a/clients/derivatives-trading-coin-futures/docs/rest-api/migration-guide.md +++ b/clients/derivatives-trading-coin-futures/docs/rest-api/migration-guide.md @@ -22,7 +22,7 @@ With the transition to a modularized structure, the Binance Connector has been s io.github.binance binance-derivatives-trading-coin-futures - 4.0.0 + 4.0.1 ``` diff --git a/clients/derivatives-trading-coin-futures/pom.xml b/clients/derivatives-trading-coin-futures/pom.xml index 792fde6d..a5996b5f 100644 --- a/clients/derivatives-trading-coin-futures/pom.xml +++ b/clients/derivatives-trading-coin-futures/pom.xml @@ -5,7 +5,7 @@ 4.0.0 binance-derivatives-trading-coin-futures derivatives-trading-coin-futures - 4.0.0 + 4.0.1 jar @@ -31,7 +31,7 @@ io.github.binance binance-common - 2.1.1 + 2.2.1 \ No newline at end of file diff --git a/clients/derivatives-trading-options/docs/rest-api/migration-guide.md b/clients/derivatives-trading-options/docs/rest-api/migration-guide.md index f836fda1..f7057117 100644 --- a/clients/derivatives-trading-options/docs/rest-api/migration-guide.md +++ b/clients/derivatives-trading-options/docs/rest-api/migration-guide.md @@ -22,7 +22,7 @@ With the transition to a modularized structure, the Binance Connector has been s io.github.binance binance-derivatives-trading-options - 4.0.0 + 4.0.1 ``` diff --git a/clients/derivatives-trading-options/pom.xml b/clients/derivatives-trading-options/pom.xml index 7cb57dc7..8fde2c69 100644 --- a/clients/derivatives-trading-options/pom.xml +++ b/clients/derivatives-trading-options/pom.xml @@ -5,7 +5,7 @@ 4.0.0 binance-derivatives-trading-options derivatives-trading-options - 4.0.0 + 4.0.1 jar @@ -31,7 +31,7 @@ io.github.binance binance-common - 2.1.1 + 2.2.1 \ No newline at end of file diff --git a/clients/derivatives-trading-portfolio-margin-pro/docs/rest-api/migration-guide.md b/clients/derivatives-trading-portfolio-margin-pro/docs/rest-api/migration-guide.md index 73b5827f..64b048aa 100644 --- a/clients/derivatives-trading-portfolio-margin-pro/docs/rest-api/migration-guide.md +++ b/clients/derivatives-trading-portfolio-margin-pro/docs/rest-api/migration-guide.md @@ -22,7 +22,7 @@ With the transition to a modularized structure, the Binance Connector has been s io.github.binance binance-derivatives-trading-portfolio-margin-pro - 4.0.0 + 4.0.1 ``` diff --git a/clients/derivatives-trading-portfolio-margin-pro/pom.xml b/clients/derivatives-trading-portfolio-margin-pro/pom.xml index 2c5e7424..d11cb677 100644 --- a/clients/derivatives-trading-portfolio-margin-pro/pom.xml +++ b/clients/derivatives-trading-portfolio-margin-pro/pom.xml @@ -5,7 +5,7 @@ 4.0.0 binance-derivatives-trading-portfolio-margin-pro derivatives-trading-portfolio-margin-pro - 4.0.0 + 4.0.1 jar @@ -31,7 +31,7 @@ io.github.binance binance-common - 2.1.1 + 2.2.1 \ No newline at end of file diff --git a/clients/derivatives-trading-portfolio-margin/docs/rest-api/migration-guide.md b/clients/derivatives-trading-portfolio-margin/docs/rest-api/migration-guide.md index edfc715a..b72414ea 100644 --- a/clients/derivatives-trading-portfolio-margin/docs/rest-api/migration-guide.md +++ b/clients/derivatives-trading-portfolio-margin/docs/rest-api/migration-guide.md @@ -22,7 +22,7 @@ With the transition to a modularized structure, the Binance Connector has been s io.github.binance binance-derivatives-trading-portfolio-margin - 3.0.0 + 3.0.1 ``` diff --git a/clients/derivatives-trading-portfolio-margin/pom.xml b/clients/derivatives-trading-portfolio-margin/pom.xml index d502e8bc..26bc90a9 100644 --- a/clients/derivatives-trading-portfolio-margin/pom.xml +++ b/clients/derivatives-trading-portfolio-margin/pom.xml @@ -5,7 +5,7 @@ 4.0.0 binance-derivatives-trading-portfolio-margin derivatives-trading-portfolio-margin - 3.0.0 + 3.0.1 jar @@ -31,7 +31,7 @@ io.github.binance binance-common - 2.0.1 + 2.2.1 \ No newline at end of file diff --git a/clients/derivatives-trading-usds-futures/docs/rest-api/migration-guide.md b/clients/derivatives-trading-usds-futures/docs/rest-api/migration-guide.md index 89db0da5..af501ac4 100644 --- a/clients/derivatives-trading-usds-futures/docs/rest-api/migration-guide.md +++ b/clients/derivatives-trading-usds-futures/docs/rest-api/migration-guide.md @@ -22,7 +22,7 @@ With the transition to a modularized structure, the Binance Connector has been s io.github.binance binance-derivatives-trading-usds-futures - 6.0.0 + 6.0.1 ``` diff --git a/clients/derivatives-trading-usds-futures/pom.xml b/clients/derivatives-trading-usds-futures/pom.xml index 104e679a..9cf36617 100644 --- a/clients/derivatives-trading-usds-futures/pom.xml +++ b/clients/derivatives-trading-usds-futures/pom.xml @@ -5,7 +5,7 @@ 4.0.0 binance-derivatives-trading-usds-futures derivatives-trading-usds-futures - 6.0.0 + 6.0.1 jar @@ -31,7 +31,7 @@ io.github.binance binance-common - 2.1.1 + 2.2.1 \ No newline at end of file diff --git a/clients/spot/docs/rest-api/migration-guide.md b/clients/spot/docs/rest-api/migration-guide.md index f56ebe6a..ad195702 100644 --- a/clients/spot/docs/rest-api/migration-guide.md +++ b/clients/spot/docs/rest-api/migration-guide.md @@ -22,7 +22,7 @@ With the transition to a modularized structure, the Binance Connector has been s io.github.binance binance-spot - 7.0.0 + 7.0.1 ``` diff --git a/clients/spot/pom.xml b/clients/spot/pom.xml index 06a4dc68..d9c53593 100644 --- a/clients/spot/pom.xml +++ b/clients/spot/pom.xml @@ -5,7 +5,7 @@ 4.0.0 binance-spot spot - 7.0.0 + 7.0.1 jar @@ -31,7 +31,7 @@ io.github.binance binance-common - 2.1.1 + 2.2.1 \ No newline at end of file