私のチームは、WebSocket を使用して既存のバックエンドと通信する Android アプリケーションを構築しています。この通信を処理するために、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!
印刷されることはありません。また、そこにブレークポイントを設定すると、その時点でアプリの実行が停止することは
ありません。
よろしくお願いいたします。