根据规格-


7.14退出房间

为了退出多用户聊天室,居住者发送出席信息
类型为“ unavailable”的节是
目前正在房间中使用。

例子80.乘员离开房间


<presence
    from='[email protected]/pda'
    to='[email protected]/thirdwitch'
    type='unavailable'/>


这意味着,一旦用户与XMPP服务器断开连接,他就会从服务器端的组中删除。问题很简单-我不想要这种行为;我希望行为类似于Whatsapp的行为,即即使用户下线,他仍然是MUC房间的一部分(配置为在服务器端永久存在),并将接收来自其他居住者的消息。

鉴于iOS的XEP-0045和XMPPFramework的规范和文档,我不知道如何完成此操作,或者不知道是否可以在传统的ejabberd服务器中完成此操作。

最佳答案

XEP-45设计于10年前。那时,设计师想到的是类似IRC通道的东西。 XEP-45的所有设计都是基于这样的假设,即用户在启动/终止其客户时进入和离开房间。

WhatsApp群组聊天是不同的:用户加入群组聊天可以查看该聊天的(完整)历史记录。即使用户客户端处于脱机状态/不可用,他仍被视为群聊的一部分。

XMPP社区当前正在提供这种功能的新XEP上工作。它称为XEP-0369: Mediated Information eXchange。它是XEP-0045的精神继承者,提供了人们期望从现代小组聊天中获得的功能。

关于xmpp - 持久XMPP MUC(XEP-45),如WhatsApp小组讨论,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25982426/

10-10 18:48