Я использую Play Framework 2.2.1 для обработки соединений WebSocket.Состояние соединения WebSocket на сервере
В общем случае, следующая функция onClose вызывается, когда соединение либо закрывается клиентом целиком (путем вызова функции закрытия), либо закрывается нежелательными событиями, например, если клиент терпит крах.
socketIn.onClose(new F.Callback0() {
public void invoke() {
// Send a Quit message
}
});
Проблема здесь, иногда, в случае нежелательных событий, callback onClose не вызывается. С точки зрения сервера клиент выглядит так, будто он все еще подключен. Каков наилучший способ справиться с этой проблемой? Должен ли я пинговать клиента как каждую секунду, чтобы увидеть, что он в сети, или, возможно, пинг от клиента к серверу?
В вашем приложении, может ли ваше соединение с веб-сервером оставаться бездействующим в течение длительного времени, что означает, что в течение длительного периода трафика нет в любом направлении? – mantithetical