【问题标题】:MUC room is locked with default installation of tigaseMUC 房间被锁定,默认安装 tigase
【发布时间】:2016-01-23 07:23:19
【问题描述】:

我已经安装了基本配置的 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!

当我加入房间时,它会在日志中显示以下错误。

【问题讨论】:

    标签: xmpp smack tigase muc


    【解决方案1】:

    当您第一次创建 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 元素,仅包含一个“提交”表单。 this answer中也提到了这一点。

    要为房间使用特定配置,请参阅section 10.1.3 of XEP-0045。首先请求配置表以了解支持哪些选项,然后填写您需要的设置。 This answer 描述了如何创建一个公开且持久的房间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 2011-08-29
      • 2018-10-07
      • 2019-12-30
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      相关资源
      最近更新 更多