在页面刷新时恢复XMPP连接

时间:2016-09-29 07:04:10

标签: javascript jquery xmpp ejabberd strophe

我无法在页面刷新时保持连接。

最初每次刷新时Strophe连接对象都会丢失。所以,我采取的第一种方法是重新连接刷新。

我在localStorage中保存JID,SID和RID,发送带保存详细信息的strophe attach调用。

AuthHandler.attach_params(jid_frm_storage, sid_frm_storage, rid_frm_storage);
  

附加回调在我拥有的实际AuthHandler对象中   创建并完美记录,这意味着可以假设   我的附件是成功的,但我仍然无法发送或接收   任何消息

我的第二种方法是我在locastorage中保存了最新的RID并使用它来附加,因为我在研究已经发布的在线问题时已经知道RID经常更改。 (虽然请注意我只在发送消息或收到消息时才保存RID。)

我也尝试过发送。

ConnectionHandler.connection.send($pres());

但这里也没有运气!

在我的最后一种方法中,我重新授权,。我连接并重新登录,然后发送了auth,仍然没有运气。

如何在刷新时恢复连接。为了重新连接和恢复同一个对话,我需要从Strophes结束的事情是什么。

注意:我对XMPP内部如何工作并不是很清楚,但我已经能够通过边做边学的方法来推动这一目标。我知道在急速前进之前等待并在xmpp上学习一下会很棒,但是由于我们正在快速进行原型设计,我现在负担不起。

如果能够详细解释完成此任务所需的步骤,我们将非常感激。

1 个答案:

答案 0 :(得分:0)

解决了这个问题:

解决此问题的最佳方法是将登录凭据保存在localStorage中(请注意,它可能不符合您的安全要求,但我会遇到),然后再次建立正确的连接,但这次使用的凭据与之前相同。 / p>