Я написал клиент XMPP с jQuery + Strophe. Все это работает хорошо (1-на-1, присутствие, MUC и т. Д.) И содержится в плагине jQuery. Однако, когда страница выгружается, она отправляет 2 финальных запроса с одним и тем же ридом. Это только недавно стало проблемой, когда я начал работать над прикреплением сессии.
Вот пример консоли Firebug:
Здесь я только что вошел и сразу обновил страницу. Первый пост, который вы видите - это начальный раздел присутствия после входа в систему. После этого запроса новый запрос BOSH начал держать соединение открытым для сервера. Этот запрос отменяется, когда я обновляю страницу. Пока все идет так, как я ожидал.
Однако после прерванного запроса strophe отправляет еще один запрос с тем же идентификатором RID. Окончательный запрос отправляется со строфы за (я полагаю) хорошие манеры и не имеет отношения к проблеме. Однако его ответ указывает, что openfire (сервер XMPP) убил сеанс в попытке защитить учетную запись.
Я просмотрел свой код и не могу найти ни одного запроса от моего имени. Я вполне уверен, что Strophe отправляет этот запрос. Тем не менее, это должно произойти из-за того, что я сделал, поскольку у моего первоначального прототипа такой проблемы не было (на самом деле мне часто приходилось вручную удалять сеансы на панели администратора, потому что я забыл закрыть их через клиент).
Есть ли какие-либо известные проблемы, которые я должен проверить, прежде чем публиковать код, вызывающий нарушение?