页面刷新时恢复XMPP连接

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

最初每次刷新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上学习一下会很棒,但由于我们正在快速进行原型设计,所以我现在负担不起。

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

解决了这个问题:

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

Interesting Posts