Smack知识知多少

    1. Smack是什么?


    Smack是为使用XMPP服务器进行即时交流(包括发送即时消息和组聊天)而提供的库。


    2. Smack有哪些优点?


    非常简单易用,强大的API。只需几行代码就能完成发送消息。


    Smack与其它类库不同的是,它不会强制你在包级使用。它提供了更有效的高级别的结构如Chat类和Roster类,会让你的编程更有效。


    你不需要熟悉XML语法,即便不熟悉XML也可以。


    提供简单的机器与机器之间的通讯。Smack允许你为每条消息设置属性,包括Java对象的属性。


    Apache开放许可代码,可以用于商业和非商业的应用。


    3. Smack发展史?


    Smack目前最新版本为4.0.7。http://www.igniterealtime.org/downloads/index.jsp#openfire


    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过滤器被移除了    

    



你可能感兴趣的:(spark,openfire,IM,XMPP)