标签: muc

持久的XMPP MUC(XEP-45),与WhatsApp组聊天一样

从规格 -

7.14退出房间

为了退出多用户聊天室,占用者将"不可用"类型的存在节发送到它当前在房间中使用的<room @ service/nick>.

例80.乘员离开房间

<presence
    from='hag66@shakespeare.lit/pda'
    to='coven@chat.shakespeare.lit/thirdwitch'
    type='unavailable'/>
Run Code Online (Sandbox Code Playgroud)

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

鉴于iOS的XEP-0045和XMPPFramework的规范和文档,我不知道如何实现这一点,或者是否可以在传统的ejabberd服务器中实现这一点.

xmpp muc groupchat

12
推荐指数
3
解决办法
7464
查看次数

ejabberd MUC档案管理查询响应

我正在使用ejabberd 15.09,并为服务器配置中的每个MUC启用了存档管理,如下所示:

mod_mam:
    default: always
 mod_muc:
    ## host: "conference.@HOST@"
    access: muc
    access_create: muc_create
    access_persistent: muc_create
    access_admin: muc_admin
    default_room_options:
      mam: true
      persistent: true
      public: true
Run Code Online (Sandbox Code Playgroud)

此外,Ejabberd管理面板上的检查显示,在每条消息发送到MUC后,存档表中的元素数量会增加,因此消息将被存档.这将验证是否为会话启用了存档.

要从MUC查询服务器的邮件存档,我发送此iq数据包:

<iq type='set' id='testid1'>
      <query xmlns='urn:xmpp:mam:1'>
        <x xmlns='jabber:x:data' type='submit'>
           <field var='FORM_TYPE' type='hidden'>
               <value>urn:xmpp:mam:1</value>
           </field>
          <field var='with'>
             <value>testmyroomnow@conference.ip/</value>
          </field>
       </x>
      </query>
    </iq>
Run Code Online (Sandbox Code Playgroud)

从服务器收到的响应不包含任何消息.

<message from='user@ip' to='user@ip/Gajim'>
<fin xmlns='urn:xmpp:mam:0' complete='true'>
<set xmlns='http://jabber.org/protocol/rsm'>
<count>0</count>
</set>
</fin>
</message>
Run Code Online (Sandbox Code Playgroud)

此MUC已包含一些消息,但如上所述查询不返回任何消息.似乎xml节的格式不正确.发送会议JID的格式不正确或其他.

不知道该怎么办,因为我已经在使用最新版本的Ejabberd来支持MUC的存档.其他我在这里做的,我不知道如何从ejabberd服务器查询MUC存档.

xmpp archive ejabberd muc

7
推荐指数
1
解决办法
1290
查看次数

如何启用muc room核心数据存储使用它进行离线访问

我正在进行群聊.我已经成功创建了组,但是无法将组存储在核心数据中,也无法加入该组(已经创建了该组).如何解析获取的组列表​​并解析核心数据类的获取....

chat ios xmppframework muc

5
推荐指数
0
解决办法
221
查看次数

如何使用PHP在openfire中创建聊天室并将用户添加到房间中

我是 XMPP 服务器的新手。我想制作多用户聊天应用程序。

我已经安装了 Openfire,一对一聊天工作正常,但我无法创建会议(聊天)房间并使用 PHP 将用户添加到房间中进行多用户聊天。

虽然我已经安装了 openfire 中可用的 MUC 服务插件,但我不知道如何使用 PHP 实现 MUC 服务 REST/HTTP。

任何人都可以为 MUC 服务提供一些示例 PHP 脚本来创建聊天室并将用户添加到聊天室吗?

提前致谢

php xmpp openfire muc

5
推荐指数
1
解决办法
4129
查看次数

我想在加入群组时禁用检索群聊(MUC)历史记录 - Android

我一直在加入房间时接收群聊历史.更具体地说,每当我加入一个组时,我都会收到我发送给该组的最后一条消息(只有一条消息).我已经尝试了以下方法来禁用它..

  • 根据文档建议,我在加入房间时已经将值'maxchars ='0'与初始状态的历史参数一起传递.
  • 在Web管理页面,转到群聊部分,然后是群聊设置 - >群聊服务属性 - >历史记录设置 - >不显示历史记录

虽然我已经尝试了所有这些可能的方法,但在加入房间时仍然收到历史信息.请注意,我在加入时收到的消息包含延迟延期.如果重要的话

android xmpp openfire smack muc

1
推荐指数
1
解决办法
1736
查看次数

标签 统计

muc ×5

xmpp ×4

openfire ×2

android ×1

archive ×1

chat ×1

ejabberd ×1

groupchat ×1

ios ×1

php ×1

smack ×1

xmppframework ×1