XMPP客戶端庫Smack 4.0.6版開發之二
來源:程序員人生 發布時間:2015-01-16 08:07:02 閱讀次數:3284次
XMPP客戶端庫Smack 4.0.6版開發之2
作者:chszs,轉載需注明。博客主頁:http://blog.csdn.net/chszs
3、Smack庫的特點
1、極度簡單易用,API功能強大
發送1條文本消息給某個用戶只需幾行代碼:
AbstractXMPPConnection connection = new XMPPTCPConnection("mtucker", "password", "jabber.org");
connection.connect();
connection.login();
Chat chat = ChatManager.getInstanceFor(connection)
.createChat("jsmith@jivesoftware.com", new MessageListener(){
public void processMessage(Chat chat, Message message){
System.out.println("Received message: " + message);
}
});
chat.sendMessage("Howdy!");
2、隔離了底層數據包組裝的復雜性,自然有相應的庫來完成這些功能。Smack提供了更智能的高層構造,比如Chat類和Roster類,這樣開發會更富有效力。
1)無需熟習XMPP的XML格式,乃至都不需要了解XML
2)提供了簡單的M2M通訊
Smack讓開發者可以對每條消息都設置大量的屬性,屬性中還可以包括Java對象。
3)基于Apache許可證的開源代碼,這意味著你可以把Smack放入你自己的商業軟件中。
4、Smack庫的組成Smack庫可之內嵌到任意的Java利用程序中。Smack庫有數個JAR文件組成,非常具有靈活性。
1、smack-core.jar
提供了核心XMPP功能。都是XMPP RFC規范定義的XMPP特性。
2、smack-extensions.jar
支持許多由XMPP Standards Foundation定義的擴大(XEP)功能。包括群聊、文件傳輸、用戶搜索等等。
以后可查看文檔《擴大手冊》:
https://github.com/igniterealtime/Smack/blob/master/documentation/extensions/index.html
(目前還是無效的)
3、smack-experimental.jar
支持許多由XMPP Standards Foundation定義的體驗性(XEP)功能。其API和功能特性都被認為是不穩定的。
4、smack-legacy.jar
支持許多由XMPP Standards Foundation定義的遺留(XEP)功能。
5、smack-bosh.jar
支持BOSH通訊(XEP-0124規范定義的)。此代碼被認為處于Beta階段。
6、smack-jingle.jar
支持Jingle。此代碼很老,目前處于無保護的狀態。
7、smack-resolver-dnsjava.jar
支持對DNS SRV記錄的解析,主要用于那些不支持javax.naming API的平臺。
8、smack-debug.jar
用于協議流量的增強型GUI調試器。當調試模式開啟后,如果它在類路徑下,它會自動被使用。
以后可查看文檔《調試模式》:
https://github.com/igniterealtime/Smack/blob/master/documentation/debugging.html
(目前還是無效的)
5、Smack的配置Smack的初始化進程觸及到2階段的調用。
1、初始化系統屬性
通過SmackConfiguration類初始化所有的系統可訪問屬性,這些屬性都是通過getXXX方法取回屬性值的。
2、初始化啟動類
任意類如果繼承了SmackInitializer接口后,都可以在調用initialize()方法后得到初始化,這意味著得到初始化的類在啟動后都是活動的。
如果沒有繼承SmackInitializer接口,那末要實現初始化,必須要放置1個靜態代碼塊來實現――他在類裝載時會自動履行。
初始化是通過配置文件來完成的。默許情況下,Smack會載入Smack JAR文件中內嵌的配置文件(它位于org.jivesoftware.smack/smack-config.xml)。這個指定的配置文件包括了1系列需載入初始化的類列表。所有的管理器類型的類都需要被初始化,這些管理器類就包括在上面所說的初始化列表中。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈