gpt4 book ai didi

javascript - strope.js,我使用 Attach() 来恢复 Bosh session ,但得到 'Status' ATTACHED to CONNFAIL 和 DISCONNECTED

转载 作者:行者123 更新时间:2023-12-03 06:37:49 29 4
gpt4 key购买 nike

我使用 strope.js 构建一个简单的 IM(web)。

我有 2 个页面:index.html(用于登录)和 myChat.html(主聊天 View )。

当我通过index.html中的jid和密码登录openfire服务器时

connection = new Strophe.Connection(BOSH_SERVICE);     
connection.connect($("#inputName").val()+"@openfireserver", $("#inputPassword").val(), onConnect);

然后我在回调“onConnect”中将 jid、sid、rid 保存在 COOKIE 中,然后转到 myChat.html

if (status == Strophe.Status.CONNECTED) {  
console.log("success");
connected = true;
$.cookie('jid', connection.jid);
$.cookie('sid', connection._proto.sid);
$.cookie('rid', connection._proto.rid);
location.href='myChat.html';
}

在 myChat.html 中,我使用 connection.attach() 来恢复 BOSH session 。

    var jid=$.cookie('jid');
var sid=$.cookie('sid');
var rid=$.cookie('rid');
connection = new Strophe.Connection(BOSH_SERVICE);
connection.attach(jid,sid,parseInt(rid,10)+1,onConnectAttach);

首先,在回调'onConnectAttach'中,状态==Strope.Status.ATTACHED,但等待1-3分钟,状态将变成Strope.Status.CONNFAIL和Strope.Status.CONNECTED!

如果我使用connection.connect()重新连接服务器,它将始终保持 session 。

所以我不明白我在哪里犯了错误?为什么使用attach()后状态会改变?

最佳答案

明白了。

connection.attach(jid,sid,parseInt(rid,10)+1,onConnectAttach);

这是错误的,因为我查了一些有关“attach”功能的问题,发现有人说“rid”必须加一个。

但是,根据我的测试,我不需要这样做。只是:

connection.attach(jid,sid,rid,onConnectAttach);

关于javascript - strope.js,我使用 Attach() 来恢复 Bosh session ,但得到 'Status' ATTACHED to CONNFAIL 和 DISCONNECTED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108221/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com