onPongReceived 永远不会被调用

onPongReceived is never called

我的团队正在构建一个 Android 应用程序,它将使用 websockets 与现有后端进行通信。我们选择使用 Koushik Dutta 的 AndroidAsync 来处理这种通信。
我想注册一个定期发送的 ping,以检查连接是否仍然存在。我正在使用 Wireshark 检查网络流量。这是 Wireshark 显示的结果的屏幕截图:

从我在这里看到的情况来看,我相信正在发送 ping,并且正在接收 pong。
我的代码片段是:

private void keepAlive() {
    ScheduledExecutorService scheduler =
            Executors.newSingleThreadScheduledExecutor();
    Runnable runnable = new Runnable() {
        public void run() {
            Log.d(TAG, "Pinging...");
            WebSocketHandler.this.webSocket.ping("LALALA");
        }
    };
    pingScheduledFuture = scheduler.scheduleAtFixedRate(runnable, 0, PING_PERIOD,
            TimeUnit.SECONDS);
}

onPongReceived 方法只是打印到 Logcat

@Override
public void onPongReceived(String s) {
    // TODO here I'm aware if connection is still alive
    Log.d(TAG, "Pong received! " + s);
}

然而,Pong received! 从未被打印出来!此外,如果我在那里放置一个断点,应用程序将永远不会在该点停止执行
有人知道我在这里可能遗漏了什么吗?
提前致以最诚挚的问候和感谢

我不熟悉 AsyncSocket,但很快 google 发现您必须在某个地方注册回调 setPongCallback() 才能收到您的乒乓球。你在做这个吗?您没有显示很多代码。

这个问题非常蹩脚,但这是解决方案。我忘记给websocket设置回调了,像这样:

WebSocketHandler.this.webSocket.setPongCallback(WebSocketHandler.this);

然后,pong 就被正确接收了。