正在关闭WebSocket连接



我已经有了带有WS连接的SDK,但它没有关闭它的方法

* @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);
};
}

那么,如何编写关闭函数来关闭我的连接呢?或者获取这个@link Closeable?https://github.com/binance-exchange/binance-java-api/blob/8d38e8e63c8bf125aff963bac0284961af0630e6/src/main/java/com/binance/api/client/impl/BinanceApiWebSocketClientImpl.java

我很清楚,该方法返回Closeable。这不仅适用于createNewWebSocket(..(…

在github自述中,他们是这样解释的:https://github.com/binance-exchange/binance-java-api#closing-网络套接字

Closable ws = client.onAggTradeEvent("ethbtc", someCallback);
// some time later...
ws.close();

因此,您不应该关闭client,而应该关闭被调用方法的返回对象(Closable ws(。

在你发布的链接中,看起来很多方法都会返回这样的Closeables。

最新更新