Я написал XMPP-клиент для Интернета, используя стандартный метод BOSH для подключения к серверу.
У меня проблема с тем, что подключение пользователя остается открытым, когда пользователь закрывает окно; Я не могу действовать при обнаружении такой активности из-за особенностей протокола. Одной из причин, по которой BOSH был разработан, было обращение с сетями, склонными к потере соединения. Таким образом, потеря соединения BOSH (Comet) с сервером допустима, если другое соединение открыто в течение заданного периода времени. Таким образом, чтобы действительно отключить пользователя, мне нужно было бы отправить сообщение о отключении на сервер XMPP через другой запрос XMLHTTPRequest.
Из-за асинхронной природы XMLHTTPRequest, насколько я знаю, это невозможно (и это может сделать проблему конфиденциальности, если это возможно). Или я не прав? Может ли кто-нибудь пролить свет на то, как отправить окончательный запрос на сервер после закрытия окна пользователем?