即時通信協議之XMPP

目前IM即時通訊有四種協議html

1.即時信息和空間協議(IMPP)安全

2.空間和即時信息協議(PRIM)服務器

3.針對即時通信和空間平衡擴充的進程開始協議SIP網絡

4.XMPP協議:架構

該協議的前身是Jabber,分佈式

咱們採起XMPP協議主來實現IM主要是考慮XMPP協議是以XML爲基礎的,它繼承了在XML環境中靈活的發展性。工具

這代表XMPP是可擴展的,因此XMPP信息不只能夠是簡單的文本,並且能夠攜帶複雜的數據和各類格式的文件,也就是說XMPP協議不只能夠用在人與人之間的交流,並且能夠實現軟件與軟件或軟件與人之間的交流,目前支持XMPP協議的即時通信工具備Gtalk、FaceBook IM、Twitter、網易POPO等等通信工具,具備很是好的發展情景。網站

基於C/S架構的即時通信項目的設計編碼

設計基於開源的XMPP即時通訊協議,採用C/S體系結構,經過GPRS無線網絡用TCP協議鏈接到服務器,以架設開源的Openfn'e服務器做爲即時通信平臺。加密

 系統主要由如下部分組成

一是服務器,負責管理髮出的鏈接或者與其餘實體的會話,接收或轉發XML(ExtensibleMarkup Language)流元素給受權的客戶端、服務器等;

二是客戶終端。它與服務器相連,經過XMPP得到由服務器或任何其它相關的服務所提供的所有功能。

三是協議網關。完成XMPP協議傳輸的信息與外部消息系統可識別信息間的翻譯。再就是XMPP網絡。實現各個服務器、客戶端間的鏈接。

系統採用客戶端(Client)/服務端(Server)架構體系結構。

相關項目見博客:hhttp://blog.csdn.net/lnb333666/article/details/7471292

XMPP協議內容

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

XMPP協議優缺點

*優勢

開放—XMPP協議是自由、開放、公開的,而且易於瞭解。並且在客戶端、服務器、組件、源碼庫等方面,都已經各自有多種實現。

標準—互聯網工程工做小組(IETF)已經將Jabber的核心XML流協議以XMPP之名,正式列爲承認的實時通訊及Presence技術。而XMPP的技術規格已被定義在RFC 3920及RFC 3921。任何IM供應商在遵循XMPP協議下,均可與Google Talk實現鏈接。

證明可用—第一個Jabber(如今XMPP)技術是Jeremie Miller在1998年開發的,如今已經至關穩定;數以百計的開發者爲XMPP技術而努力。今日的互聯網上有數以萬計的XMPP服務器運做著,並有數以百萬計的人們使用XMPP實時傳訊軟件。

分佈式—XMPP網絡的架構和電子郵件十分相像;XMPP核心協議通訊方式是先建立一個stream,XMPP以TCP傳遞XML數據流,沒有中央主服務器。任何人均可以運行本身的XMPP服務器,使我的及組織可以掌控他們的實時傳訊體驗。

安全—任何XMPP協議的服務器能夠獨立於公衆XMPP網絡(例如在企業內部網絡中),而使用SASL及TLS等技術的可靠安全性,已自帶於核心XMPP技術規格中。

可擴展—XML命名空間的威力可以使任何人在覈心協議的基礎上建造客製化的功能;爲了維持通透性,常見的擴展由XMPP Standards Foundation。

彈性佳—XMPP除了可用在實時通訊的應用程序,還能用在網絡管理、內容供稿、協同工具、文件共享、遊戲、遠程系統監控等。

多樣性—用XMPP協議來建造及佈署實時應用程序及服務的公司及開放源代碼計劃分佈在各類領域;用XMPP技術開發軟件,資源及支持的來源是多樣的,使得使你不會陷於被「綁架」的困境。

*缺點

數據負載過重:隨着一般超過70%的XMPP協議的服務器的數據流量的存在和近60%的被重複轉發,XMPP協議目前擁有一個大型架空中存在的數據提供給多個收件人。新的議定書正在研究,以減輕這一問題。

沒有二進制數據:XMPP協議的方式被編碼爲一個單一的長的XML文件,所以沒法提供修改二進制數據。所以, 文件傳輸協議同樣使用外部的HTTP。若是不可避免,XMPP協議還提供了帶編碼的文件傳輸的全部數據使用的Base64。至於其餘二進制數據加密會話(encrypted conversations)或圖形圖標(graphic icons)以嵌入式使用相同的方法。

總結:XMPP協議的特色是,C/S架構、分佈式網絡、簡單的客戶端、XML的數據格式

注意:

XMPP IM 與非XMPP 的其餘IM互聯互通方法: 若是對方不是XMPP 體系中的用戶, 就要在企業IM服務器上架設協議轉換網關。在XMPP 的IM服務器上架設IM協議轉換網關, 要遵照RFC3922 協議, 這個協議規定了XMPP 與公共顯示和即時消息( CPIM)的映射。這裏描述一下一個用戶與MSN 用戶的交流。在與MSN 用戶交流以前, 企業IM用戶首先設置一個MSN 用戶到XMPP—MSN 協議轉換網關上( 告訴MSN 的用戶與密碼給網關) , 如今網關就能夠用這個MSN帳號與MSN 系統進行交流了。綁定了MSN 用戶的企業IM用戶登陸企業IM服務器後, 協議轉換網關把MSN 帳號的好友的MSN 帳號返回給用戶, 並在裏面作了映射, 映射到了本地XMPP 帳號。如今用戶能夠跟與本地XMPP 用戶同樣, 與MSN 帳號的用戶進行交流了

參考博客:http://www.cnblogs.com/luxiaofeng54/archive/2011/03/14/1984026.html

相關文章
相關標籤/搜索