阅读本文
首先,我想创建一个具有默认设置的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);
现在我如何将该配置应用于该房间。任何帮助将不胜感激。
感谢。
注意:我希望它从服务器端而不是客户端应用配置