互联网连接丢失时,xmpp ejabberd 在线离线状态问题

xmpp ejabberd online offline status issue when internet connection loss

我将 ejabberd 设置为移动应用程序之间的 xmpp 服务器,即。自定义 iPhone 和 Android app.But 我似乎 运行 限制了 ejabberd 处理在线状态的方式。 假设有两个用户 A 和 B 是彼此的朋友并且正在进行实时聊天对话。假设他们中的一个失去了他的互联网连接,那么就没有办法立即将他的状态更新到服务器。所以他的状态一直在线。 此问题的一种解决方案是在 xmpp 中使用 mod_ping 模块。但它也有一定的局限性,它会在 32 秒间隔后 ping 每个客户端。所以用户的状态更新总是有30到40秒的延迟。 我想在良好的网络条件下立即(少于 10 秒)更新任何用户的状态,例如最新情况。这是每个人面对的聊天应用程序的第一个场景,我希望有人能帮助我解决这个问题。

在 ejabberd 即将推出的 15.12 版本中,您有一个新的 mod_ping 选项:ping_ack_timeout。你可以设置任何你想要的超时时间。

这已经在 master 分支中可用,所以如果你想的话你已经可以使用它了:https://github.com/processone/ejabberd