Android基于XMPP Smack Openfire下学习开发IM(三)会议室创建、加入以及查询会议室中所有成员等

openfire 中的会议室不像QQ群一样,不能保存那些离线用户,加入会议室后,一旦断开连接,就会离开会议室。

虽然如此,但如果要实现也不是不可能,我们可以自己做后台来保存,有兴趣的可以去试着实现一下,这里就不实现了。

好了,下面我们就一起来学习一下创建会议室、加入会议室以及查询会议室中的所有成员:

一、创建会议室

注释都写的很清楚,不做太多解释。

需要配置更多信息,可以到 http://xmpp.org/extensions/xep-0045.html  中15.5.3 muc#roomconfig FORM_TYPE 查看配置

里面还有一些关于会议室的信息,感兴趣的可以看看,不过里面都是英文,不懂英文的可以谷歌翻译,楼主就是这么干的~

/**
	 * 创建房间
	 * 
	 * @param roomName 房间名称
	 */
	public static void createRoom(String roomName) {
		if (connection == null) {
			return;
		}
		try {
			// 创建一个MultiUserChat
			MultiUserChat muc = new MultiUserChat(connection, roomName
					+ "@conference." + connection.getServiceName());
			// 创建聊天室
			muc.create(roomName); // roomName房间的名字
			// 获得聊天室的配置表单
			Form form = muc.getConfigurationForm();
			// 根据原始表单创建一个要提交的新表单。
			Form submitForm = form.createAnswerForm();
			// 向要提交的表单添加默认答复
			for (Iterator<FormField> fields = form.getFields(); fields
					.hasNext();) {
				FormField field = (FormField) fields.next();
				if (!FormField.TYPE_HIDDEN.equals(field.getType())
						&& field.getVariable() != null) {
					// 设置默认值作为答复
					submitForm.setDefaultAnswer(field.getVariable());
				}
			}
			// 设置聊天室的新拥有者
			List<String> owners = new ArrayList<String>();
			owners.add(connection.getUser());// 用户JID
			submitForm.setAnswer("muc#roomconfig_roomowners", owners);
			// 设置聊天室是持久聊天室,即将要被保存下来
			submitForm.setAnswer("muc#roomconfig_persistentroom", false);
			// 房间仅对成员开放
			submitForm.setAnswer("muc#roomconfig
  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值