2016-08-30 38 views
0

我正在開發使用XMPPFramework和Openfire Server的聊天應用程序。有什麼方法可以檢測郵件是被讀取還是未被讀取? 我聽說XEP-0184,但它只是消息傳遞(接收與否)。檢測XMPP消息使用Openfire讀取/未讀

+0

不,這是不可能的:「讀」一條信息意味着一個人正在讀一條線,基本上只有一個人可以證實這一點。 Whatsapp雙重檢查在服務器接收時爲灰色,而在目標設備上收到消息時爲雙重檢查。 – MrPk

+0

哦,它是「看到」,如Facebook或Skype,我想檢查用戶是否看到它(或它顯示在屏幕上) – maphongba008

+1

您需要自定義XMPP擴展才能支持此功能。 –

回答

0

我是如何通過在用戶打開未讀聊天時發送特殊消息來實現的。

而當用戶收到特殊消息時,它會知道該消息已被其他用戶讀取。

特殊信息應該是唯一的:這樣你就可以檢查它是否被接收,這意味着信息已被讀取。

0

XEP-0184(送達回執)用於確保郵件到達最終用戶(用戶在線)。對於顯示通知,您可以使用XEP-0085(ChatStateEvent)或XEP-0022(MessageEvent)。儘管XEP-0022不推薦使用,建議使用XEP-0085。

+0

我認爲XEP-0085無法解決我的問題。 XEP-0085僅在發送之前通知消息狀態(用戶正在撰寫或未撰寫)。我發現XEP-0333可能對我有幫助。我會試試這個。 – maphongba008

+0

好的。那很好:) –

+0

我意識到XEP-0333用於在用戶在線時發送消息狀態,archiveMessage沒有保存消息的狀態,所以我找不到像Fb或Skype這樣的未讀消息數不 – maphongba008