发件人离线时如何发送XMPP消息?

Sus*_*ant 7 android offline xmpp sender asmack

我正在使用aSmack和Openfire进行聊天应用.我能够很好地发送和接收消息.当收件人离线时,Openfire支持离线邮件传输,通过保持消息直到他联机.

但是当发件人离线或他的互联网在通信之间掉线时该怎么办?

是否有任何api由aSmack/Smack提供,它会在互联网恢复之前保留消息?

或者我应该通过SQLite发送消息?

Sus*_*ant 2

一段时间后很好地回答,但也许它仍然会为某人指明正确的方向。

经过一段时间的搜索,我了解到 aSmack 不提供任何离线存储。

要在发送者离线时发送消息,我们需要离线存储来存储消息,直到发送者重新上线。我用过sqlite这个,但如果我们必须在成功发送后删除消息,SharedPreferences 也是一个不错的选择。

我遵循的最佳解决方案是,在 中插入消息sqlite,将其 id 存储在 中shared preferences,发送消息,然后从 中删除 id shared preferences。同时,如果互联网连接断开或消息因任何原因无法发送,那么我们会将其 ID 保存在共享首选项中作为备份。上线后,我们可以查看shared preferences他们是否有待发送的消息。