我正在客户端使用 XMPP over BOSH 和 Strophe 实现实时通知系统,但我遇到了一些问题。当我登录我的网站时,我在后端建立了一个 BOSH 连接,并将 JID、SID 和 RID 保存为 cookie。当页面重新加载时,我从 cookie 中获取数据并使用 Strophe 的附加功能附加到该会话。我收到一个回叫状态,表明我已被附加。
我面临的第一个问题是每秒左右发送请求。这些是请求标头:
请求地址:http://localhost:7070/http-bind/
请求方法:POST
状态码:200 OK请求标头
接受:*/*
Accept-Charset:UTF-8,*;q=0.5
Accept-Encoding:gzip,deflate,sdch
Accept-Language:sv-SE,sv;q=0.8,en-US;q=0.6 ,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:77
Cookie:JSESSIONID=ibxwvm3ophp8; jiveforums.admin.logviewer="debug.size=0&info.size=0&warn.size=0&error.size=0"
主机:localhost:7070
来源:http:// * **
引用者:http:// * ** /flXHR /flXHR.swf
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1 content-type:application/x-www-form-urlencoded表单数据
< body rid:'3007' xmlns响应头
Content-Length:57
Content-Type:text/xml;charset=UTF-8
Server:Jetty(7.0.2-SNAPSHOT)
我看不到任何响应内容,所以我不确定是什么原因造成的。发送的表单数据看起来像无效和不完整的 XML,这是导致它的原因还是 Chrome 在调试器中如何格式化它?
我面临的另一个问题是当我重新加载页面时。我已将卸载事件绑定到窗口对象,在该对象中我将 RID 加一并将其保存到 cookie。但是,当页面重新加载时,它说我已附加到 BOSH 会话,但随后我收到以下错误消息:
POST http://localhost:7070/http-bind/ 404 (Not Found) (localhost)
Uncaught Error: 16, ioError, An error occured preventing completion of the request. (flensed.js)
下一个请求将抛出 404(无效的 SID。)而不是 404(未找到),并且每 70 多秒左右重复一次。
有没有其他人遇到过这个问题并知道如何解决它?我很沮丧!
在此先感谢,
皮埃尔