我在我的android项目中使用smack库来创建一个即时通讯器。使用MessageListener接收消息,使用ChatManager发送消息,我以错误的顺序获取脱机消息。在我的服务器上安装了openfire。
例如,在线用户向离线用户发送3条单独的消息“a”、“b”和“c”。
当此脱机用户随后联机时,无法按正确顺序接收邮件。他将显示“C”、“B”和“A”。为什么会这样?如何解决这个问题?
提前谢谢你的帮助。
最佳答案
这似乎是一个openfire错误或配置错误。xmpp消息应按以下顺序传递:
xmpp服务器必须确保按顺序处理节和
它通过给定的输入流从
连接的客户端或远程服务器。
顺序处理应用于(a)用于协商的任何xml元素
和管理XML流,以及(b)XML节的所有用途,[…]
--AA>
脱机消息没有明确提及,但它们只是服务器功能,没有在协议中记录。不过,它们也不例外-服务器仍应遵循这些规则。
我建议发到RFC6120 Section 10.1或填写Openfire forum。
关于android - Openfire离线消息顺序错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17705545/