OpenFire 是采用Java開發的基于XMPP(Jabber)協議,開源實時協作(RTC)服務器。
Smack 是用 Java編 寫的XMPP客戶端代碼庫,是 spark 的核心
開源界總是有許多有趣的東東,這三個合起來就是一個完整的XMPP IM 實現。
OpenFire ——服務器端
Spark——客戶端
Smack——XMPP 傳輸協議的實現
三者都是基于Java 語言的實現,其中XMPP是一個協議,協議是需要實現的,Smack起到的就是這樣的一個作用。
OpenFire 是基于XMPP 協議的IM 的服務器端的實現,雖然當兩個用戶連接后,可以通過點對點的方式來發送消息,但是用戶還是需要連接到服務器來獲取一些連接信息和通信信息的,所以服務器端是必須要實現的。
Spark 提供了客戶端一個基本的實現,并提出了一個很好的插件架構,這對于開發者來說不能不說是一個福音。我強烈建議基于插件方式來實現你新增加的功能,而不是去改它的源代碼,這樣有利于你項目架構,把原始項目的影響降到最低。
Smack 是一個XMPP 協議的Java 實現,提供一套可擴展的API,不過有些時候,你還是不得不使用自己定制發送的XML 文件內容的方式來實現自己的功能
三者之間的關系:
從上圖可知,Client 端和Server端都可以通過插件的方式來進行擴展,Smack是二者傳遞數據的媒介。
OpenFire官方
官方介紹: http://www.igniterealtime.org/index.jsp
官方下載: http://www.igniterealtime.org/downloads/index.jsp