XMPP:Openfire:服务器端的MUC Room Set Room配置

时间:2015-01-08 12:38:20

标签: android xmpp openfire xmppframework asmack

阅读本文

首先,我想创建一个具有默认设置的MUC房间。这就是我所做的。

- 在openfire上创建了服务 - 设置默认房间设置(如房间持久性,仅限会员等) - 根据这个答案,从android端创建了一个muc房间 Create MUC Room and Set Configuration 然后我在创建房间后应用了配置。 这是发送的内容。

<iq id="r4ik2-24" to="roomId@conference.hostname" type="set">
  <query
    xmlns="http://jabber.org/protocol/muc#owner">
    <x
        xmlns="jabber:x:data" type="submit">
        <field var="FORM_TYPE" type="hidden">
            <value>http://jabber.org/protocol/muc#roomconfig</value>
        </field>
        <field var="muc#roomconfig_roomowners" type="jid-multi">
            <value>owner@hostname</value>
        </field>
    </x>
 </query>
</iq>

它将默认房间设置应用于此房间。 它运行良好,受邀用户也可以加入会议室。在将此表单发送到服务器机房的属性与默认属性相同(如持久性,仅限成员)

但是在我将此表单发送到服务器后它将被应用。否则收件人将收到404错误,如上述问题所述。

我想要的东西:在创建房间时从服务器端应用这些配置。创建后不需要从房间所有者发送配置表单。

我做了什么:我开发了一个插件,可以监听每个MUC事件,例如(创建房间,占用者等等)

现在当房间被创建时,我使用下面的代码

获得了该房间的MUCROOM对象
  XMPPServer server = XMPPServer.getInstance();
  MultiUserChatManager manager = server.getMultiUserChatManager();
  MultiUserChatService conference = manager.getMultiUserChatServices().get(0);
  MUCRoom mucRoom = conference.getChatRoom(roomName);

现在我如何将该配置应用于该房间。任何帮助将不胜感激。

感谢。

注意:我希望它从服务器端而不是客户端应用配置

0 个答案:

没有答案