如何将通知发送给从聊天组中删除的离线成员?

问题描述:

我是XMPP新手,正在开发类似于watsapp的群聊应用程序。这个场景是:如何将通知发送给从聊天组中删除的离线成员?

“用户A创建一个群聊,添加用户B,C和D,所有的成员都在线,他们正在聊天,现在D需要应用程序来背景或杀死应用。如果用户D将被通知A已经将他从组中删除,当D回到应用程序时?

我正在使用ejabberd(15.11)和PostgreSQL并遵循XMPP体系结构。如果答案是在那里,所以想帮到你

+0

你的问题的描述似乎不匹配标题。标题是关于存在,问题是关于群组聊天中权利更改的通知。你能否澄清你的问题? –

+0

我很抱歉的混淆。标题具有误导性。针对该问题发布的描述是我坚持使用的场景。 –

+0

也许你应该更新你的帖子来改变你的标题,然后:)你还可以澄清你的意思是从组中删除D?您要发送哪个XMPP数据包是基于会员的房间?你的意思是A将D从成员列表中删除? –

XMPP MUC规格说,在部分9.5: Modifying the Member List

如果删除的成员目前正处于一个会员制的客房,服务 应该通过改变所移除成员的角色 “无”踢乘员如前所述 发送合适的存在移除成员。该服务必须随后拒绝用户进入 。

这意味着参与者只会收到他自己的状态更改修改,如果它出现在事件发生时的房间。如果他当时不在线,他只能知道他的证书已被删除,因为他无法再加入房间。换句话说,在规范的当前状态下,当移除发生时用户不在房间内时,无法获得移除通知。你可以推断他被删除,因为他在下次登录时不能再次加入房间。

在XEP-0045多用户聊天中没有其他定义存储离线参与者和稍后交付的成员资格事件。

+0

我想我以前并不清楚......让我再解释一遍。 D暂时没有使用该应用程序,该应用程序在后台,并且他与XMPP断开连接。现在A将他从成员名单中删除。我如何通知D他已被从组中删除? –

+1

你很清楚,我回答了这个问题。在规范的当前状态下,当用户不在房间内时没有办法获得移除通知。你可以推断这一点,因为他不能再次加入房间。如果您需要特别通知,则需要自定义协议和服务器。 –

+0

好的,非常感谢:) –