我有一个网络聊天应用程序。我正在使用BOSH,Openfire和Strophe。除非页面刷新,否则一切都很好用。我在页面刷新之前使用cookie保存用户信息(JID,RID,SID)。但是,当重置连接时,将显示所有在线用户,但是当您按顺序向客户端发送消息时,尽管会话仍处于活动状态,但它将自动变为UNAVAILABLE。
编辑:
$(window).bind('onunload', function () {
if(connection !== null){
connection.pause();
set_cookies();
}else{
del_cookies();
}
});
刷新后,应使用 Attach()功能恢复连接。将显示所有在线联系人的列表,但在几秒钟后它将不可用。
答案 0 :(得分:2)
你可以通过保存创建连接来解决这个问题,在每个请求中删除更新,xmpp服务器通常有一些rids的窗口,所以重要的是在cookie中保持更新。
尝试更新strophe make的每个BOSH请求。 这可以通过将rid-saving代码插入连接对象的xmlOutput方法来完成:
conn.xmlOutput = function(body) {
var rid = $(body).attr('rid');
// save rid to cookies
}