首页 > 代码库 > aSmack4.0之旅(一)配置介绍注册篇
aSmack4.0之旅(一)配置介绍注册篇
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及以上,否则出现各种奇葩错误
好的,今天就到这了,希望能帮到大家
转载请指明出处:http://blog.csdn.net/hellohhj/article/details/41074803
aSmack4.0之旅(一)配置介绍注册篇
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。