0

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

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

4

1 回答 1

0

当您第一次创建 MUC 房间时,它会被“锁定”,直到您对其进行配置。有两种配置房间的方法:要么接受默认配置(这称为“即时”房间),要么指定您想要的配置。

XEP-0045 的第 10.1.2 节描述了创建即时房间:

<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>

也就是说,发送一条类型为 的 IQ 消息set,其中包含 MUC 所有者名称空间中的一个query元素,其中仅包含一个“提交”表单。这个答案中也提到了这一点。

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

于 2016-01-23T14:55:13.880 回答