简体   繁体   English

OkHttp WebSocket 乒乓球

[英]OkHttp WebSocket ping and pong

I'm using okhttp-4.9.3 to create a websocket which is connecting to Binance.我正在使用 okhttp-4.9.3 创建一个连接到 Binance 的 websocket。

In their documentation, they say that they are sending a ping at every 3 minutes and I need to answer to it.在他们的文档中,他们说他们每 3 分钟发送一次 ping,我需要回复它。

But I don't know how to do it.但我不知道该怎么做。

I have this WebSocketListener:我有这个 WebSocketListener:

public static void main(String[] args){

    Request request = new Request.Builder()
                .url("wss://stream.binance.com:9443/ws")
                .build();

    webSocketBinance = okHttpClient.newWebSocket(request, new SocketListen);

    webSocketBinance.send("{\"method\":\"SUBSCRIBE\",\"params\":[\"egldusdt@depth5@100ms\"],\"id\":1}");

}


public static class SocketListen extends okhttp3.WebSocketListener{

    @Override
    public void onOpen(@NotNull WebSocket webSocket, @NotNull Response response){
        System.out.println("onOpen");
        super.onOpen(webSocket, response);
    }

    @Override
    public void onMessage(@NotNull WebSocket webSocket, @NotNull String text){
        System.out.println(text);
        super.onMessage(webSocket, text);
    }

    @Override
    public void onMessage(@NotNull WebSocket webSocket, @NotNull ByteString bytes){
        onMessage(webSocket, bytes.toString());
    }

    @Override
    public void onClosed(@NotNull WebSocket webSocket, int code, @NotNull String reason){
        System.out.println("onClosed: " + code + " - " + reason);
        super.onClosed(webSocket, code, reason);
    }

    @Override
    public void onClosing(@NotNull WebSocket webSocket, int code, @NotNull String reason){
        System.out.println("onClosing: " + code + " - " + reason);
        super.onClosing(webSocket, code, reason);
    }

    @Override
    public void onFailure(@NotNull WebSocket webSocket, @NotNull Throwable t, @Nullable Response response){
        t.printStackTrace();
        super.onFailure(webSocket, t, response);
    }

}

I have no method ping or pong for overriding in okhttp3.WebSocketListener .我没有在okhttp3.WebSocketListener中覆盖的方法pingpong

How I can do it?我该怎么做?

OkHttp automatically responds to pings for you. OkHttp 会自动为您响应 ping。 You don't need to do anything.你不需要做任何事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM