Ya tengo SDK con conexión WS, pero no tiene método para cerrarlo. En la documentación se ha dicho:
* @deprecated This method is no longer functional. Please use the returned {@link Closeable} from any of the other methods to close the web socket. @Override public void close() { } private Closeable createNewWebSocket(String channel, BinanceApiWebSocketListener<?> listener) { String streamingUrl = String.format("%s/%s", BinanceApiConfig.getStreamApiBaseUrl(), channel); Request request = new Request.Builder().url(streamingUrl).build(); final WebSocket webSocket = client.newWebSocket(request, listener); return () -> { final int code = 1000; listener.onClosing(webSocket, code, null); webSocket.close(code, null); listener.onClosed(webSocket, code, null); }; }Entonces, ¿cómo puedo escribir la función de cierre para cerrar mi conexión? ¿O obtener este @link cerrable? https://github.com/binance-exchange/binance-java-api/blob/8d38e8e63c8bf125aff963bac0284961af0630e6/src/main/java/com/binance/api/client/impl/BinanceApiWebSocketClientImpl.java
Me parece que el método regresa con Closeable. Y esto es cierto no solo para createNewWebSocket(...)...
En el readme de github lo explican así: https://github.com/binance-exchange/binance-java-api#closing-web-sockets
Closable ws = client.onAggTradeEvent("ethbtc", someCallback); // some time later... ws.close(); Por lo tanto, no debe cerrar el client , sino el objeto de retorno del método llamado (el Closable ws ).
En el enlace que publicó, parece que muchos métodos regresan con tales Closeables.