tigase下的聊天室创建与配置
来源:互联网 发布:director.js 编辑:程序博客网 时间:2024/06/05 19:26
最近在做一个即时通讯的项目,客户端用的是安卓asmark,服务端用的是tigase。
本人是第一次写博客来分享经验,是一只开发小菜鸟,希望这些经验可以让其他人少走些弯路。
好了废话进不多说了,开始正题。
现在开发xmpp及时通讯,大多是使用openfire,国内使用tigase还是较少的。遇到问题总是各种查。查不到也就只能自己一个个慢慢试了
创建聊天室的代码很简单,但是使用不同的服务端还是有区别的。
tigase下创建聊天室
MultiUserChat muc = new MultiUserChat(ClientConServer.connection, roomName + "@muc." + ClientConServer.connection.getServiceName()); // 创建聊天室 muc.create(roomName);
openfire下创建聊天室
MultiUserChat muc = new MultiUserChat(ClientConServer.connection, roomName + "@conference." + ClientConServer.connection.getServiceName()); // 创建聊天室 muc.create(roomName);
大家看到区别了吗? 当初楼主我使用了openfire的代码在tigase下创建房间结果tigase返了 404,s2s错误,到处找这个错误的解决方式。呵呵,都怪楼主学艺不精啊。
创建完聊天室,就该进行了聊天室的属性进行配置了。至于聊天室有哪些属性,大家可以去看协议(群聊协议xep 0045)。不过不同的服务端对实现的协议的内容是不一样的
要对房间的属性进行配置,就得从服务端拿到对应的表单。根据楼主debug的结果,openfire返回的表单信息大概有25条。而tigase只有13条。
不过openfire和tigase获取表单的代码是一样的
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()); } }
获取到的表单之后就得进行配置了。
submitForm.setAnswer("muc#roomconfig_persistentroom", true);
以上这个方法多个重载方法。第一个参数是根据服务端提供的来写的,如果所写的是tigase不提供的就会报java.lang.IllegalArgumentException
现在我们就来看看tigase提供了哪些。
muc#roomconfig_roomname 房间名称
muc#roomconfig_roomdesc 房间描述
muc#roomconfig_persistentroom 房间是持久的
muc#roomconfig_publicroom Make Room Publicly Searchable
muc#roomconfig_moderatedroom 房间是临时的
muc#roomconfig_membersonly 房间仅对成员开放
muc#roomconfig_passwordprotectedroom 需要密码才能进入的房间
muc#roomconfig_roomsecret 设置房间密码
muc#roomconfig_anonymity 匿名的房间
muc#roomconfig_changesubject 允许占有者更改主题
muc#roomconfig_enablelogging 登陆房间对话
muc#maxhistoryfetch
在tigase下能配置的房间属性也就只有这些了。至于openfire提供了哪些这里我就不一一列出了,国内使用的还是比较多的。
第一次写博客写的不咋样,大家勿喷哈!写博客是为何和大家分享经验,希望大家也积极参与,共同学习,共同进步。
- tigase下的聊天室创建与配置
- smack在tigase服务器下创建聊天室
- 用asmack,服务器是tigase ,创建房间,加入聊天室,聊天等的基本功能
- 多线程与聊天室程序的创建
- tigase服务器的安装与启动
- Tigase XMPP Server在CentOS部署与配置
- Tigase XMPP Server在CentOS部署与配置
- 基于tigase服务器的安卓客户端开发---创建聊天
- 孙鑫VC++视频笔记(15)多线程与聊天室的创建
- 孙鑫VC++视频笔记(15)多线程与聊天室的创建
- vc++学习之15 多线程与聊天室程序的创建
- tigase集群配置
- tigase的笔记一 — 基本的配置
- Tsung的安装与tigase的压测
- TIGASE 开发纪录一tigase的搭建
- tigase的message流转
- tigase的message流转
- tigase
- Android 关于所谓的“深度睡眠”的问题
- 金融大脑,互联网金融的下一个风暴眼
- /include/sys/types.h:151: error: duplicate 'unsigned' uint,ulong和ushort自定义和工具链报冲突的规避方法
- asmcmd报错
- jqgrid 给某一列添加超链接
- tigase下的聊天室创建与配置
- Swift--数组和字典(二)
- 我试图用ANSI “字符串化” 预处理操作符# 向信息中插入符号常量的值, 但它字符串化的总是宏的名字而不是它的值。
- CSS选择器命名规则
- 手把手教你如何安装cocoapods
- 三人行
- 华东种业第一展——2014济南种子展的热闹和门道
- 算法专题----程序员必须知道的8大排序和3大查找
- 聚类分析算法