2015-09-24 95 views
1

我有一個支持ejabberd的iOS應用程序,帶有一個基於offline_message_hook的小型擴展,它使用APNS(Apple推送通知服務)來發送發送給離線用戶的消息的推送通知。儘管這對於羣聊來說效果不是那麼好,所以我正在尋找一種策略,對於羣聊中的離線用戶來說也是如此。 MUC是否跟蹤屬於房間但不在線的用戶?我需要以某種方式擴展它們以跟蹤此情況嗎?我可以從一組在線用戶中減去一組受邀用戶來獲得離線用戶嗎?我應該用什麼鉤子來做到這一點?羣聊的離線消息鉤

對此建議或更好策略的建議非常感謝!

回答

1

多用戶聊天的XMPP規範將MUC房間定義爲基於狀態。按照定義,用戶只有在連接時才進入聊天室。當他離線時,用戶離開聊天室。這意味着他根本沒有收到消息。這解釋了爲什麼他們不存儲在離線。

這是XEP-0045的一項功能。未來的一些XMPP規範(又名MUC 2)可能會解決這個問題。目前,消息的MUC +脫機存儲在XMPP中是不可能的。

+0

謝謝。你打算什麼時候發佈MUC 2?你能給我一些指導如何在MUC 1中做到這一點。 –

+0

它在MUC規範中定義的方式是不可能的。您必須創建自己的協議/擴展以符合您的要求。例如,您可以使用在ejabberd MUC模塊(muc_filter_packet)中添加的新掛鉤。關於MUC2,XSF還沒有寫出MUC2的規格,所以它只有幾個月的時間。 –