我无法在页面刷新时保持连接。
最初每次刷新时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上学习一下会很棒,但是由于我们正在快速进行原型设计,我现在负担不起。
如果能够详细解释完成此任务所需的步骤,我们将非常感激。
答案 0 :(得分:0)
解决了这个问题:
解决此问题的最佳方法是将登录凭据保存在localStorage中(请注意,它可能不符合您的安全要求,但我会遇到),然后再次建立正确的连接,但这次使用的凭据与之前相同。 / p>