Я искал, прежде чем для этого, и решение, которое я смог найти было реализовать механизм пинг-понг между сервером и клиентами.
Например, каждые несколько секунд отправляют фиктивное сообщение клиенту по определенной теме и возвращают еще один фиктивный ответ, если вы не получили ответ в течение настроенного периода, вы можете считать, что клиент отключен.
Как уже упоминалось, here
ТОПАЙТЕ и Spring также позволяют настроить темы, где каждый абонент будет получать такое же сообщение. Это будет очень полезно для отслеживания активных пользователей. В пользовательском интерфейсе каждый пользователь подписывается на тему , в которой сообщается, какие пользователи активны, и в нашем примере эта тема будет вызывать сообщение каждые 2 секунды. Клиент будет ответить на каждое сообщение, содержащее список пользователей со своим собственным heartbeat, который затем обновляет сообщение, отправляемое другим клиентам. Если клиент не зарегистрировался более 5 секунд (т. Е. Пропустил два пульса), мы рассматриваем их в автономном режиме. Это дает нам около реального времени разрешение пользователей, доступных в чате. Пользователи появятся в поле в левой части экрана, нажав на название, вытащите за окно чата для них, а имена с конвертом рядом с ними имеют новые сообщения.
Я не использую топать. Метод afterConnectionClosed из WebSocketHandler не запускается, когда клиент теряет подключение к Интернету. –
Вы проверили -> handleTransportError метод? – melihcoskun
handleTransportError должен быть запущен, но вы должны определить исключение. если это исключение для отключения веб-рассылки, вы можете запустить свое событие. – melihcoskun