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
本文轉載至:http://blog.csdn.net/ithomer/article/details/7192257