我将ejabberd设置为移动应用之间的xmpp服务器,即。自定义iPhone和Android应用程序。但我似乎遇到了ejabberd处理在线状态的方式的限制。 假设有两个用户A& B朋友互相交流并进行当前的实时聊天对话。假设其中一人丢失了他的互联网连接,那么就无法立即将他的状态更新为服务器。所以他的状态仍然在线。 这个问题的一个解决方案是在xmpp中使用mod_ping模块。但它也有一定的局限性,它将在32秒间隔后ping每个客户端。因此用户的状态更新总是有30到40秒的延迟。 我希望在良好的网络状况下立即更新任何用户的状态(少于10秒)。这是每个人都面临的聊天应用程序的第一个场景,我希望有人能帮助我完成这个任务。
答案 0 :(得分:2)
在ejabberd即将发布的15.12版本中,您有一个新的mod_ping
选项:ping_ack_timeout
。你可以放任何你想要的超时。
这已在master分支中提供,因此您可以根据需要使用它:https://github.com/processone/ejabberd