MUC房间被默认安装的tigase锁定

时间:2016-01-23 07:23:19

标签: xmpp smack tigase muc

我已经安装了基本配置的tigase7.0.2。

现在我正在使用已安装的服务器执行MUC,其中包含以下代码:

创建房间

MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
MultiUserChat muc = MainActivity.manager.getMultiUserChat("myroom@muc." + connection.getServiceName());

加入会议室

    muc = MainActivity.manager.getMultiUserChat("myroom@muc." + connection.getServiceName());
    muc.join(connection.getUser().split("@")[0]);
    muc.addMessageListener(new MessageListener() {
   @Override
   public void processMessage(final Message message) {
           runOnUiThread(new Runnable() {
           @Override
           public void run() {
          Toast.makeText(UserListActivity.this, message.getFrom() + ":" + message.getBody(), Toast.LENGTH_SHORT).show();
    }
       });
    }
   });

当我加入房间时,以下信息出现在Toast中。

: Room is locked. Please configure.
: Welcome! You created new Multi User Chat Room. Room is locked now. Configure it please!

当我加入会议室时,会在日志中显示以下错误。

1 个答案:

答案 0 :(得分:0)

当您第一次创建MUC房间时,它已被锁定"直到你配置它。配置房间有两种方法:接受默认配置(这称为"即时"房间),或指定所需的配置。

section 10.1.2 of XEP-0045中描述了创建即时空间:

<iq from='crone1@shakespeare.lit/desktop'
    id='create1'
    to='coven@chat.shakespeare.lit'
    type='set'>
  <query xmlns='http://jabber.org/protocol/muc#owner'>
    <x xmlns='jabber:x:data' type='submit'/>
  </query>
</iq>

即,发送类型为set的IQ消息,其中包含MUC所有者命名空间中的query元素,仅包含表单&#34; submit&#34;。 this answer中也提到了这一点。

要使用房间的特定配置,请参阅section 10.1.3 of XEP-0045。首先请求配置表单以找出支持的选项,然后使用您需要的设置填写它。 This answer描述了如何创建公共和持久的会议室。