XMPP客户端库Smack 4.0.6版开发之一
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
一、Smack库概述
Smack是一个开源、易用的XMPP/Jabber客户端库,它使用Java语言开发,由Jive Software开发。
Smack的优点是编程简单。
Smack的缺点是其API并非为大量并发用户设计,每个客户都要1个线程,占用资源相对较,因此用Smack做模拟测试时,1台机器只能模拟有限(数千个)客户。
截止2014年11月27日,Smack库已经发展到4.0.6版。
最新的好消息是Smack在4.1.0版后将直接支持Android系统,而无需再使用以前的Smack移植版aSmack库了。
Smack库源码托管于GitHub,主页见: https://github.com/igniterealtime/Smack/
二、Smack 4的改变
Smack库从3.4版发展到4.0.x版后,其API有较大的变化,主要有:
1、把Connection类重命名为XMPPConnection类
XMPPConnection类是XMPPTCPConnection类和XMPPBOSHConnection类的父类。
2、把各种Provider类进行了分包
3、keep-alive(持久连接)机制从smack-core库移到了smack-extensions库
keep-alive机制现在由PingManager类提供。
4、PrivacyList类的toString()方法重命名为getName()
5、当Chat实例的所有引用都撤掉后,应该调用Chat.close()方法
否则Chat对象会有内存泄露的隐患,直到ChatManager对象被垃圾回收器回收后内存泄露隐患才会消失。
6、ServerTrustManager类被移除了
如果要使用带SSL认证的XMPP,你只需提供自己的SSLContext对象给ConnectionConfiguration对象即可。
7、Packet.setProperty()从smack-core库移到了smack-extensions库
其API现在可以在org.jivesoftware.smackx.jiveproperties包中找到。
8、Connection.getAccountManager()方法现在改成了AccountManager.getInstance(XMPPConnection)方法
9、异常API做了改进
10、ToContains过滤器被移除了