我有一个可以与桌面或移动设备一起使用的即时消息网站。我发现在使用移动浏览器时,某些消息未传递或延迟。
我正在使用Ejabberd 17.04,启用了流管理,启用了离线消息,在客户端与Strophe连接(使用XEP-0184消息传递收据)。
以下是一些配置:
mod_stream_mgmt
resume_timeout: 300
max_resume_timeout: 300
resend_on_timeout: true
mod_offline
access_max_user_messages: (100 for normal user)
store_empty_body: unless_chat_state
当max_resume_timeout
设置为300s时,如果客户端没有响应,如何在300s之间处理消息?当客户恢复(在300s内)流时,是否会重新发送消息?
据我所知,在300s内未发送给用户的任何消息都将被重新发送,如果用户当时没有重新连接,则应由离线消息处理。但是,重新连接后,某些离线消息不会立即发送 。我怎样才能减少延误?
我应该使用MAM (XEP-0313)
来获取用户断开连接和重新连接之间的所有消息,以避免消息丢失吗?
我有什么办法可以避免或最小化与服务器的UNSTABLE连接吗?