2013-07-17 132 views
3

我在我的android項目中使用了smack庫來創建即時消息。使用MessageListener接收消息並使用ChatManager發送消息,我會以錯誤的順序收到脫機消息。在我的服務器上,我安裝了Openfire。Openfire離線消息的順序錯誤

例如,在線用戶向離線用戶發送3個單獨的消息「A」,「B」和「C」。 當此離線用戶然後聯機時,郵件未按正確的順序收到。他將顯示「C」,「B」和「A」。這是爲什麼?如何解決這個問題?

非常感謝您的幫助。

回答

3

這似乎是一個Openfire錯誤或錯誤配置。 XMPP消息應該按順序遞送:

XMPP服務器務必保證按順序的節和接收在給定的輸入流從 連接的客戶端或遠程服務器 其他XML元素的處理。

在序處理應用(a)至用於協商 和管理XML流,和任何XML元素(b)至XML節的所有用途,[...]

- RFC6120 Section 10.1

離線消息沒有明確提到,但它們只是一個服務器功能,並沒有在協議中記錄。然而,他們也不例外 - 服務器應該仍然遵循這些規則。

我建議張貼到Openfire forum或提交bug report

+0

我會嘗試重新安裝openfire,看看這個問題是否存在。 – Max

+0

重新安裝openfire後,問題仍未解決。幾次嘗試後,我仍然得到錯誤的消息順序。我會做一個錯誤報告並寫入openfire論壇。 – Max