我已经安装了基本配置的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!
当我加入会议室时,会在日志中显示以下错误。
答案 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描述了如何创建公共和持久的会议室。