Tigase客户端jaxmpp使用之群聊(四)
1:修改init.properties文件
#开启MUC组建
--comp-name-1= muc
--comp-class-1= tigase.muc.MUCComponent
#不添加该代码,以默认配置创建的房间会被锁住,其他人无法加入
muc/muc-lock-new-room[B]=false
#配置一个使用MUC组建的二级域名
--external= muc.domain.com:muc-pass
2:创建房间
如果没有显示的创建房间,在第一个用户加入房间时,会创建一个了临时的Room,并且该第一个加入的用户作为房间的拥有者。下面的例子即是创建一个临时Room。
RoomName:房间名
mucserver:支持MUC的域(init中配置的muc.domain.com二级域名)
nickName:当前用户在房间中显示的昵称
jaxmpp().getModulesManager().getModule(MucModule.class)
.join(roomName, mucServer,nickName);
3:加入房间
加入房间时,昵称不能重复,否这会报冲突的错误。
room即是2中返回的Room实例
StringroomName = room.getRoomJid().getLocalpart();
StringmucServer = room.getRoomJid().getDomain();
jaxmpp().getModulesManager().getModule(MucModule.class)
.join(roomName, mucServer,nickName);
4:发送消息
room是加入房间的实例,发送的代码比较简单。如果按之前的方式直接使用jaxmpp.send或其他的Message,IQ进行消息发送,会报不支持的特性错误。因为MUC和PubSub一样,是做为XMPP协议的扩展。默认情况下是没有开启的。
room.sendMessage("body.....");
5:退出房间
jaxmpp().getModulesManager().getModule(MucModule.class).leave(room);
6:其他MUC特性参阅
MUC扩展协议官方文档中,定义了如果踢人,私聊,权限设置等等方法。更高级的功能,可以通过查阅官方文档实现
http://wiki.jabbercn.org/XEP-0045
标签:
上一篇: XMPP 协议工作流程具体解释
下一篇: tigase的笔记一 — 基本的配置