MUC 房间被锁定,默认安装 tigase
Posted
技术标签:
【中文标题】MUC 房间被锁定,默认安装 tigase【英文标题】:MUC room is locked with default installation of 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!
当我加入房间时,它会在日志中显示以下错误。
【问题讨论】:
【参考方案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 描述了如何创建一个公开且持久的房间。
【讨论】:
以上是关于MUC 房间被锁定,默认安装 tigase的主要内容,如果未能解决你的问题,请参考以下文章