天天看點

一.xmpp openfire smack spark介紹

前言:

    呵呵,上一個項目結束了,整理了一下,想一想,好像沒什麼事奧,閑着也是閑着,還是去問問我們的項目經理下一個項目可能要做什麼吧,先做一下準備,我剛提起,他就給我說,我正要給你說呢,公司可能要做一個聊天的項目,讓我看看xmpp,并寫個Demo給他,這不,我這兩天在網上查了一些質料,分享一下,第一次寫部落格,有什麼建議,多 多指教。閑話少說,進入正題: 

一:XMPP介紹

      XMPP(可擴充消息處理現場協定)全稱:Extensible Messaging and PresenceProtocol,是基于可擴充标記語言(XML)的協定,它是一個發送接收處理消息的協定,它用于即時消息(IM)以及線上現場探測。它在促進伺服器之間的準即時操作。這個協定可能最終允許網際網路使用者向網際網路上的其他任何人發送即時消息,即使其作業系統和浏覽器不同。

 IM(及時通信軟體),全稱:InstantMessenger,就是大家使用的QQ、MSNMessenger和Gtalk等等。其中Gtalk 就是基于XMPP 協定的一個實作,其他的則不是。

    XMPP的前身是Jabber,一個開源形式組織産生的網絡即時通信協定。XMPP目前被IETF國際标準組織完成了标準化工作。

    XMPP的核心XML流傳輸協定的定義使得XMPP能夠在一個比以往網絡通信協定更規範的平台上。借助于XML易于解析和閱讀的特性,使得XMPP的協定能夠非常漂亮。

   XMPP中定義了三個角色,用戶端,伺服器,網關。通信能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了用戶端資訊記錄,連接配接管理和資訊的路由功能。網關承擔着與異構即時通信系統的互聯互通,異構系統可以包括SMS(短信),MSN,ICQ等。基本的網絡形式是單用戶端通過TCP/IP連接配接到單伺服器,然後在之上傳輸XML。

        Java領域的即時通信可以考慮openfire+spark+smack。當然也有其他的選擇。我選擇的是這個。

   Openfire,Spark和smack這三個合起來就是一個完整的XMPP IM 實作。包括伺服器端(Openfire),用戶端(Spark),XMPP 傳輸協定的實作(Smack)(記住,XMPP是一個協定,協定是需要實作的,Smack起到的就是這樣的一個作用)。三者都是基于Java 語言的實作。

二:Spark介紹

      Spark 提供了用戶端一個基本的實作,并提出了一個很好的插件架構,這對于開發者來說不能不說是一個福音。我強烈建議基于插件方式來實作你新增加的功能,而不是去改它的源代碼,這樣有利于你項目架構,把原始項目的影響降到最低。

三:Openfire介紹

    Openfire采用Java開發,開源的實時協作(RTC)伺服器基于XMPP(Jabber)協定的IM 的伺服器端的一個實作,雖然當兩個使用者連接配接後,可以通過點對點的方式來發送消息,但是使用者還是需要連接配接到伺服器來擷取一些連接配接資訊和通信資訊的,是以伺服器端是必須要實作的。

    Openfire 也提供了一些基本功能,但真的很基本的!慶幸的是,它也提供插件的擴充,像Spark 一樣,同樣強烈建議使用插件擴充的方式來增加新的功能,而不是修改人家的源代碼。

    Openfire您可以使用它輕易的建構高效率的即時通信伺服器.

    Openfire安裝和使用都非常簡單,并利用Web進行管理。單台伺服器可支援上萬并發使用者。

    Openfire由于是采用開放的XMPP協定,您可以使用各種支援XMPP協定的IM用戶端軟體登陸服務.

四:Smack介紹

    Smack 是一個XMPP 協定的Java 實作,提供一套可擴充的API,不過有些時候,你還是不得不使用自己定制發送的XML 檔案内容的方式來實作自己的功能

一.xmpp openfire smack spark介紹

繼續閱讀