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