我在我的android项目中使用smack库来创建即时通讯工具。使用MessageListener接收消息和ChatManager发送消息,我得到错误顺序的离线消息。在我的服务器上安装了Openfire。
例如,在线用户向离线用户发送3个单独的消息“A”,“B”和“C”。 当此离线用户然后联机时,将不按正确的顺序接收消息。他将显示“C”,“B”和“A”。为什么会这样?这个问题怎么解决?
提前感谢您的帮助。
答案 0 :(得分:3)
这似乎是一个Openfire错误或配置错误。应按顺序传递XMPP消息:
XMPP服务器必须确保节的顺序处理 它从一个给定的输入流接收的其他XML元素 连接客户端或远程服务器。
有序处理适用于(a)用于协商的任何XML元素 和管理XML流,以及(b)XML节的所有用途,[...]
未明确提及脱机消息,但它们只是服务器功能,未在协议中记录。但是他们也没有例外 - 服务器仍应遵循这些规则。
我建议发布到Openfire forum或提交bug report。