我是XMPP新手,正在開發類似於watsapp的羣聊應用程序。這個場景是:如何將通知發送給從聊天組中刪除的離線成員?
「用戶A創建一個羣聊,添加用戶B,C和D,所有的成員都在線,他們正在聊天,現在D需要應用程序來背景或殺死應用。如果用戶D將被通知A已經將他從組中刪除,當D回到應用程序時?
我正在使用ejabberd(15.11)和PostgreSQL並遵循XMPP體系結構。如果答案是在那裏,所以想幫到你
我是XMPP新手,正在開發類似於watsapp的羣聊應用程序。這個場景是:如何將通知發送給從聊天組中刪除的離線成員?
「用戶A創建一個羣聊,添加用戶B,C和D,所有的成員都在線,他們正在聊天,現在D需要應用程序來背景或殺死應用。如果用戶D將被通知A已經將他從組中刪除,當D回到應用程序時?
我正在使用ejabberd(15.11)和PostgreSQL並遵循XMPP體系結構。如果答案是在那裏,所以想幫到你
XMPP MUC規格說,在部分9.5: Modifying the Member List:
如果刪除的成員目前正處於一個會員制的客房,服務 應該通過改變所移除成員的角色 「無」踢乘員如前所述 發送合適的存在移除成員。該服務必須隨後拒絕用戶進入 。
這意味着參與者只會收到他自己的狀態更改修改,如果它出現在事件發生時的房間。如果他當時不在線,他只能知道他的證書已被刪除,因爲他無法再加入房間。換句話說,在規範的當前狀態下,當移除發生時用戶不在房間內時,無法獲得移除通知。你可以推斷他被刪除,因爲他在下次登錄時不能再次加入房間。
在XEP-0045多用戶聊天中沒有其他定義存儲離線參與者和稍後交付的成員資格事件。
我想我以前並不清楚......讓我再解釋一遍。 D暫時沒有使用該應用程序,該應用程序在後臺,並且他與XMPP斷開連接。現在A將他從成員名單中刪除。我如何通知D他已被從組中刪除? –
你很清楚,我回答了這個問題。在規範的當前狀態下,當用戶不在房間內時沒有辦法獲得移除通知。你可以推斷這一點,因爲他不能再次加入房間。如果您需要特別通知,則需要自定義協議和服務器。 –
好的,非常感謝:) –
你的問題的描述似乎不匹配標題。標題是關於存在,問題是關於羣組聊天中權利更改的通知。你能否澄清你的問題? –
我很抱歉的混淆。標題具有誤導性。針對該問題發佈的描述是我堅持使用的場景。 –
也許你應該更新你的帖子來改變你的標題,然後:)你還可以澄清你的意思是從組中刪除D?您要發送哪個XMPP數據包是基於會員的房間?你的意思是A將D從成員列表中刪除? –