aSmack4.0之旅(一)配置介绍注册篇
来源:互联网 发布:淘宝的道具可以开刃么 编辑:程序博客网 时间:2024/06/08 08:38
aSmack4.0之旅(一)配置注册篇
一、Smack是什么
Smack是一个开源,易于使用的XMPP(jabber)客户端类库。
Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发。
优点:编程简单。
缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户.
smack是一个用 java 写的XMPP客户端代码库, 是 spark 的核心.
二、Smack的优点
1:Smack是一个简单的,功能强大的类库。给用户发送信息只需三行代码便可完成
XMPPConnection connection = new XMPPTCPConnection(”jabber.org“);
connection.login(”mtucker”, “password”);
connection.createChat(”jsmith@jivesoftware.com“).sendMessage(”Howdy!”);
2:不会强迫你向其他类库那样,在信息包层面进行编码。它提供了更加智能化的类比如Chat,能使你的工作更富效率。
3:不需要你熟悉XMPP XML格式,甚至是XML格式。
4:易于实现机-机对话。
5:Apace License下的开源软件。你可以把它用于你的商业或非商业程序。
好的不废话了,进入咱们的正题。aSmack4.0后和Smack基本差异也没那么大了,现在来说说aSmack4.0后版本的配置和使用
一、我们先到官网下载需要的jar包如果需要源码官方也是提供了的
http://asmack.freakempire.de/
当然开发之前别忘了先读一读官方提供的版本更新说明以及README不然你将会有大麻烦的
4.0以后改动略大了点使用前需要导入两个包我用的是asmack-android-8-4.0.5.jar和dnsjava-2.1.3.jar可别忘了dnsjava.jar不然SmackAndroid.init()会出问题的哦
好了,下面开始我们的注册
1、SmcakAndroid,init(getApplicationContext());初始化。
2、配置ConnectionConfiguration
configuration = new ConnectionConfiguration(config.getXmppHost(),config.getXmppPort(), config.getXmppServernanme());
//config.getXmppHost() openfir服务器地址 config.getXmppPort() 端口号(5222)config.getXmppServernanme()名字随意。Android默认为Smack
3、configuration.setSecurityMode(SecurityMode.disabled); 设置为disabled否则认证失败。
4、connection = new XMPPTCPConnection(configuration); 好的配置完成了,下面是开始注册就直接贴代码了
/** * 注册 * * @param account * 注册帐号 * @param password * 注册密码 */public int regist(String account, String password) {try {XMPPConnection connection = XMPPConnectionManager.getInstance().getConnection();connection.connect();Registration reg = new Registration();reg.setType(IQ.Type.SET);reg.setTo(connection.getServiceName());Map<String, String> map = new HashMap<String, String>();map.put("username", account);map.put("password", password);reg.setAttributes(map);PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class));PacketCollector collector = XMPPConnectionManager.getInstance().getConnection().createPacketCollector(filter);connection.sendPacket(reg);IQ result = (IQ) collector.nextResult(SmackConfiguration.getDefaultPacketReplyTimeout());System.out.println("-----------------result--------------------"+ result);collector.cancel();// 停止请求results(是否成功的结果)} catch (Exception e) {e.printStackTrace();return Constant.LOGIN_ERROR;}return Constant.LOGIN_SECCESS;}
注意事项:
1、需要注意点是注册是需要异步操作否则连接异常
2、aSmack对ADT要求蛮高,最好是23及以上,否则出现各种奇葩错误
好的,今天就到这了,希望能帮到大家
Demo 地址: http://download.csdn.net/detail/hellohhj/8399715
转载请指明出处:http://blog.csdn.net/hellohhj/article/details/41074803
0 0
- aSmack4.0之旅(一)配置介绍注册篇
- aSmack4.0之旅(二)登录篇
- aSmack4.0之旅(二)退出篇(换账号无效)
- IIC介绍(一)之物理层介绍
- (一)Java8之介绍
- 微信小程序之注册配置
- mogodb 介绍(一)----安装及配置
- MySQL基础(一)介绍和配置
- 机器学习之 weka学习(一)weka介绍,安装和配置环境变量
- Android ORM框架介绍之greenDao配置(一)
- Spring Cloud 学习之旅 --- 服务注册与发现(一)
- springcloud学习之旅(一)服务的注册于发现
- linux IDE驱动分析之Ide_driver的注册(一)
- YII MVC之用户注册和用户登录(一)
- 邮件注册(一)
- 注册(一)
- 登录注册(一)
- JavaScript介绍-javaScript学习之旅(一)
- zookeeper启动后查看状态的Error contacting service. It is probably not running.错误
- 在eclipse中配置Tomcat
- 四种方法实现VC枚举系统当前进程
- 二、测试用例设计白皮书--等价类划分方法
- jsp传递中文乱码的解决方案
- aSmack4.0之旅(一)配置介绍注册篇
- 最小(大)费用流
- Fragment中的findviewbyid
- OpenGL
- IOS storyboard文件界面跳转
- context.getResourceAsStream 不能读到 properties文件的问题
- Android编程之getApplicationContext(),activity.this,this的区别
- linux下几个重要目录的解释
- 数据库中10位或13位时间戳转换为标准时间