OkHttp WebSocket ping and pong

Viewed 831

I'm using okhttp-4.9.3 to create a websocket which is connecting to Binance.

In their documentation, they say that they are sending a ping at every 3 minutes and I need to answer to it.

But I don't know how to do it.

I have this 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.

How I can do it?

1 Answers

OkHttp automatically responds to pings for you. You don't need to do anything.

Related