是否有可以跨页面刷新保持聊天的 xmpp 客户端?

Posted

技术标签:

【中文标题】是否有可以跨页面刷新保持聊天的 xmpp 客户端?【英文标题】:Is there an xmpp client that can persist chats across page refreshes? 【发布时间】:2011-10-05 21:20:12 【问题描述】:

我们有一个读书应用程序,我的任务是实现基本的聊天功能。我们选择了 openfire 作为聊天服务器。我的问题是,在阅读一本书时,当用户翻页时,这会刷新完整的页面。我怎样才能在这些刷新中保持聊天?我不想撞到用户并让他们重新加入。关于我应该采取的实现这一点的路径的任何想法?理论上,我们希望将客户端放入页面中,并且它可以以最小的努力工作。无论如何,他们的客户是否会在刷新期间持续存在?

【问题讨论】:

【参考方案1】:

网页是无状态的。它们自己不能将数据从一个负载传播到另一个负载。为此,您需要使用 cookie 和/或服务器端会话。一旦你有一个用户登录并建立了登录 cookie/会话令牌,你就可以模拟不间断的聊天。

基本上,您将聊天状态保存在用户的会话文件中,并根据需要进行更新。这样,每当页面重新加载或他们导航到另一个页面时,聊天的状态“就跟随着”,让它看起来从未消失过。

【讨论】:

【参考方案2】:

对网站上的所有页面使用 AJAX + postate/onhashchange 效果。这样页面本身(视图)可以改变,但围绕它的内容(页眉+页脚)不会改变。

【讨论】:

以上是关于是否有可以跨页面刷新保持聊天的 xmpp 客户端?的主要内容,如果未能解决你的问题,请参考以下文章

使用 XMPP Strophe BOSH 刷新页面后客户端自动变为不可用

Facebook 聊天 tcp 连接如何保持活动状态?

使用 Smack 的 QuickBlox 服务器端 XMPP 客户端

XMPP Chat 与不在网络中的客户端一起使用

Dart 有 XMPP api 吗?

在页面刷新时恢复 XMPP 连接