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
原创粉丝点击