2015-09-01 96 views

回答

0

從Strophe插件代碼中,我不認爲收據插件允許直接支持「Message Seen」功能。根據我的理解,它確實支持可靠性部分,並將未被排除的消息保留在隊列中。但是,目的只是爲了在一段時間內沒有收到信息時重新發送信息。

https://github.com/strophe/strophejs-plugins/blob/master/receipts/strophe.receipts.js

恐怕你需要自定義代碼來實現XMPP協議功能的頂部在Javascript該功能。

+0

嗨對不起,我已經生病了一個星期左右,我看看收據和聊天狀態插件,然後我有一個想法;我在想,只能使用ping插件/發送消息來創建「看到」功能。當我發送消息時,我也發送ping消息,ping消息處理程序位於聊天頁面中,如果它發送回乒乓球,我知道它已經被看到。至於何時收件人處於離線狀態,何時發送郵件,收件人何時聯機並讀取了郵件,它可以發送如所示的「消息」。所以當發送者在線時,它會得到看到的消息。 – John

+0

如果我這樣做,那麼我不必添加收據和chatstate插件,但使用on_message和ping,我已經使用 - 我假設,所以它減少了它必須加載和運行的代碼。 – John

5

要獲得Message Delivery Receipt,您可以使用strophe.receipts.js插件。使用這個消息的發送者可以請求消息已經被傳遞給由預期的接收者控制的客戶端的一些通知。

使用此收據插件,您無法實現「消息查看」功能。爲此,您必須使用XEP擴展XEP-0333 Chat Markers協議。到目前爲止,沒有任何Strophe插件來實現這個功能。

要實現「消息查看」功能,您可以檢查XEP-0085 Chat State Notification XEP擴展協議。 StropheJs用strophe.chatstates.js插件支持這一點。此外,通過使用聊天狀態通知,您可以推斷收件人已經閱讀郵件,如果郵件在郵件發送後的任何時間變爲活動狀態。

+0

但是,如果發送者在接收者讀取消息時不在線,那麼chatstates插件將不能夠告訴?只有當兩個用戶在線時,聊天狀態才起作用? – John

+0

@John當用戶離線時,消息將不會被傳遞。所以沒有收件人可以閱讀未傳送的消息。當收件人回到在線狀態,然後發送郵件。稍後,當他打開該消息時,我們可以說收件人對該聊天活動有效,並且我們可以將該消息標記爲「已看到」。 – Yashwanth

+0

嗨,是的,但發件人可能已經離線了。 – John

相關問題