我有ejabberd设置为移动应用程序之间的xmpp服务器,即.自定义iPhone和Android应用.
但我似乎陷入了对ejabberd处理在线状态的限制.
场景:
并投入数据连接变化(wifi到3G到4G ......)你会发现这种情况发生了很多.
mod_ping:
我尝试以10秒的间隔实现mod_ping.
https://www.process-one.net/docs/ejabberd/guide_en.html#modping
但是正如文档所述,在断开用户连接之前,ping将等待32秒以进行响应.
这意味着将有一个42秒的窗口,用户可能会丢失其消息.
理想方案:
即使ping等待时间可以减少,它仍然不是一个完美的解决方案.
有没有一种方法可以让ejabberd在丢弃消息之前等待来自客户端的200响应?如果没有响应,则将其保存为脱机.
是否可以编写一个钩子来解决这个问题?
或者是否有一个我错过的简单设置?
仅供参考:我没有使用BOSH.