我正在使用 Play Framework 2.2.1 来处理 WebSocket 连接。
通常,当连接被客户端有意关闭(通过调用 close 函数)或被不需要的事件(例如客户端崩溃)关闭时,将调用以下 onClose 函数。
socketIn.onClose(new F.Callback0() {
public void invoke() {
// Send a Quit message
}
});
这里的问题是,有时,在发生不需要的事件时,不会调用 onClose 回调。从服务器的角度来看,客户端看起来仍然是连接的。处理这个问题的最佳方法是什么?我应该像每一秒一样 ping 客户端以查看他是否在线,或者可能是从客户端到服务器的 ping?