WebSocket 接続を処理するために Play Framework 2.2.1 を使用しています。
一般に、次の onClose 関数は、(close 関数を呼び出して) クライアントによって意図的に接続が閉じられた場合、またはクライアントがクラッシュした場合などの不要なイベントによって接続が閉じられた場合に呼び出されます。
socketIn.onClose(new F.Callback0() {
public void invoke() {
// Send a Quit message
}
});
ここでの問題は、不要なイベントが発生した場合に onClose コールバックが呼び出されないことがあります。サーバーの観点からは、クライアントはまだ接続されているように見えます。この問題を処理する最善の方法は何ですか? クライアントがオンラインであることを確認するために毎秒のようにクライアントにpingを送信する必要がありますか、それともクライアントからサーバーへのpingを実行する必要がありますか?