Я внедряю систему уведомлений в реальном времени, используя XMPP поверх BOSH и Strophe на стороне клиента, но у меня есть некоторые проблемы. Когда я захожу на свой сайт, я устанавливаю BOSH-соединение в бэк-энде и сохраняю JID, SID и RID в виде куки. Когда страница перезагружается, я получаю данные из файлов cookie и присоединяюсь к этому сеансу, используя функцию прикрепления Strophe. Я получаю статус обратного вызова, который говорит, что я был прикреплен.
Первая проблема, с которой я сталкиваюсь, заключается в том, что запросы отправляются каждую секунду или около того.
Это заголовки запроса:
URL запроса: http://localhost:7070/http-bind/
Способ запроса: POST
Код состояния: 200 ОК
Заголовки запроса
Принимаем: * / *
Accept-Charset: UTF-8, *; д = 0,5
Accept-Encoding: GZIP, выкачать, SDCH
Accept-Language: SV-SE, св; д = 0,8, EN-US; д = 0,6, ан; д = 0,4
Cache-Control: макс возраста = 0
Подключение: держать-жив
Content-Length: 77
Печенье: JSESSIONID = ibxwvm3ophp8; jiveforums.admin.logviewer = "debug.size = 0 & info.size = 0 & warn.size = 0 & error.size = 0"
Ведущий: локальный: 7070
Происхождение: http://***
Referer: http://***/flXHR/flXHR.swf
Пользователь-агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit / 535.1 (KHTML, как Gecko) Chrome / 13.0.782.107 Safari / 535.1
тип контента: application / x-www-form-urlencoded
Данные формы
Заголовки ответа
Content-Length: 57
Content-Type: текст / XML, кодировка = UTF-8
Сервер: Jetty (7.0.2-SNAPSHOT)
Я не вижу никакого ответа, поэтому не уверен, что его вызывает. Отправляемые данные формы выглядят как недопустимый и неполный XML, это их вызывает или именно так Chrome будет форматировать их в отладчике?
Другая проблема, с которой я сталкиваюсь, - это перезагрузка страницы. Я связал событие unload с объектом окна, в котором я увеличил RID на единицу и сохранил его в cookie. Однако, когда страница перезагружается, она говорит, что я подключился к сеансу BOSH, но затем я получаю следующее сообщение об ошибке:
POST <a href="http://localhost:7070/http-bind/" rel="nofollow">http://localhost:7070/http-bind/</a> 404 (Not Found) (localhost)
Uncaught Error: 16, ioError, An error occured preventing completion of the request. (flensed.js)
Следующий запрос выдаст 404 (неверный SID.) Вместо 404 (не найден) и повторяется каждые 70+ секунд или около того.
Кто-нибудь еще сталкивался с этой проблемой и знает, как ее решить? Я разочарован!
Заранее спасибо,
Pierre