У меня есть чат на сайте для двух человек (нас и любые клиенты, задающие вопросы), и я хочу отображать сообщение «$client отключился», когда они отключаются каким-либо образом, в том числе:
- Нажатие назад в браузере
- Закрытие окна
- Закрытие браузера через диспетчер задач
Мне еще предстоит найти надежный способ (попытка с помощью свойств JavaScript onunload и onbeforeunload) справиться с этим, особенно если использовался диспетчер задач.
Я думаю сделать так, чтобы пользователь продолжал вызывать AJAX-скрипт, где они увеличивают некоторое значение на стороне сервера; это увеличение прекратится, когда их страница будет закрыта. С нашей стороны продолжайте запускать скрипт, который проверяет, изменилось ли это значение. Если он не изменился после произвольного количества проверок (например, 3), то пользователь, вероятно, отключился, и он отобразит сообщение.
Но в этом нет никакой элегантности, и вывод «вероятно, отключен» не совсем обнадеживает.
Как бы вы это сделали, чтобы сообщение об отключении появлялось только тогда, когда пользователь отключился.