XMPP協議學習筆記一

來源:互聯網
上載者:User

標籤:http   io   os   使用   for   on   檔案   資料   代碼   

  • 即時通訊技術簡介

即時通訊技術(IM)支援使用者線上即時交談。如果要發送一條資訊,使用者需要開啟一個小視窗,以便讓使用者及其朋友在其中輸入資訊並讓交談雙方都看到交談的內容。大多數常用的即時通訊發送程式都會提供各種各樣的功能:

  1. 即時通訊 - 在使用者和線上朋友之間來回傳送資訊

  2. 聊天 - 建立使用者與朋友或工友的自訂聊天室

  3. 網頁連結 - 共用使用者喜愛的網址

  4. 支援圖片 - 瀏覽朋友電腦中的圖片

  5. 支援聲音 - 給朋友播放音樂

  6. 支援檔案傳輸 - 直接將檔案發送給朋友,以便於共用

  7. 交談 - 使用 Internet,而不是電話,與朋友們進行真正的交談

  8. 影音串流內容 - 即時或准即時的股市行情或新聞

  有許多的IM系統,如 AOL IM、Yahoo IM、 MSN IM還有我們熟悉的QQ,它們最大的區別在於各自通訊協議的實現,所以即時通訊技術的核心在於它的傳輸協議,協議用來說明資訊在網路上如何傳輸,如果有了統一的傳輸協議,那麼應當可以實現各個IM之間的直接通訊,為了建立即時通訊的統一標準,人們經過了多次嘗試:IETF 的對話初始協議(SIP)和即時通訊對話初始協議和表示擴充協議(SIMPLE)、應用交換協議(APEX)、顯示和即時通訊協議(PRIM)及基於 XML 且開放的可擴充通訊和表示協議(XMPP)協議(常稱為 Jabber 協議)。人們多次努力,試圖統一各大主要 IM 供應商的標準(AOL、Yahoo 及 Microsoft),但無一成功,且每一種 IM 仍然繼續使用自己所擁有的協議。

  • 幾種IM協議標準簡介


IMPP 主要定義必要的協議和資料格式,用來構建一個具有空間接收、發布能力的即時資訊系統。到目前為止,這個組織已經出版了三個草案RFC,但主要的有兩個:一個是針對網站空間和即時通訊模型的(RFC 2778);另一個是針對即時通訊/空間協議需求條件的(RFC2779)。RFC2778是一個資料性質的草案,定義了所有presence和IM服務的原理。RFC2779定義了IMPP的最小需求條件。另外,這個草案還就presence服務定義了一些條款,如啟動並執行命令、資訊的格式,以及 presence伺服器如何把presence的狀態變化通知給客戶。

SIMPLE是目前為止制定的較為完善的一個。SIMPLE和 XMPP兩個協議,都符合RFC2778和RFC2779 。SIMPLE計劃利用SIP來發送presence資訊。SIP是IETF中為終端制定的協議。SIP一般考慮用在建立語音通話中,一旦串連以後,依* 如即時通訊協定(RTP)來進行實際上的語音發送。但SIP不僅僅能被用在語音中,也可以用於視頻。SIMPLE被定義為建立一個IM進程的方法。 SIMPLE在2002年夏季得到額外的信任,目前,微軟和IBM都致力於在它們的即時通訊系統中實現這個協議。

SIMPLE小組致力於進程模式的操作,這將提升運行效率,使基於SIP的機制能夠進行會議和三方電話交談控制,也考慮到能和未來提供的許多新特性實現相容並提升表現能力。有了進程模式,SIMPLE使用SIP來建立一次進程,再利用SDP(進程描述協議)來實際傳輸IM資料。

XMPP是一種基於XML的協議,它繼承了在XML環境中靈活的發展性。這表明XMPP是可擴充的。可以通過發送擴充的資訊來處理使用者的需求,以及在XMPP的頂端建立如內容發布系統和基於地址的服務等應用程式。而且,XMPP包含了針對伺服器端的軟體協議,使之能與另一個進行通話,這使得開發人員更容易建立客戶應用程式或給一個配好系統添加功能。

XMPP目前在免費原始碼開放Jabber IM系統中被廣泛採用。2002年,這個產品有超過5萬的下載量。XMPP擁有成千的Jabber開發人員,以及大約數萬台配置的伺服器和超過百萬的終端使用者。

  • XMPP概述 

XMPP: The Extensible Messaging and Presence Protocol   

中文全稱:可擴充通訊和表示協議   

簡介:可擴充通訊和表示協議 (XMPP) 可用於服務類即時通訊、表示和需求 - 響應服務中的 XML 資料元串流。XMPP 以 Jabber 協議為基礎,而 Jabber 是即時通訊中常用的開放式協議。XMPP is the IETF‘s formalization of the base XML streaming protocols for instant messaging and presence developed within the Jabber open-source community in 1999   

XMPP(可擴充訊息處理現場協議)是基於可延伸標記語言 (XML)(XML)的協議,它用於立即訊息(IM)以及線上現場探測。它在促進伺服器之間的准即時操作。這個協議可能最終允許網際網路使用者向網際網路上的其他任何人傳送立即訊息,即使其作業系統和瀏覽器不同。   

XMPP的前身是Jabber,一個開源形式組織產生的網路即時通訊協定。XMPP目前被IETF國際標準組織完成了標準化工作。標準化的核心結果分為兩部分;   

核心的XML流傳輸協議   

基於XML FreeEIM流傳輸的即時通訊擴充應用   

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

XMPP的即時通訊擴充應用部分是根據IETF在這之前對即時通訊的一個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如AIM,QQ等有功能完整,完善等先進性。   

XMPP的擴充協議Jingle使得其支援語音和視頻。    

XMPP的官方文檔時RFC 3920.

  • XMPP的基本結構

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

  • XMPP通過TCP傳的是什麼

傳輸的是與即時通訊相關的指令。在以前這些命令要麼用2進位的形式發送(比如QQ),要麼用純文字指令加空格加參數加換行苻的方式發送(比如MSN)。而XMPP傳輸的即時通訊指令的邏輯與以往相仿,只是協議的形式變成了XML格式的純文字。這不但使得解析容易了,人也容易閱讀了,方便了開發和查錯。而XMPP的核心部分就是一個在網路上分區斷髮送XML的流協議。這個流協議是XMPP的即時通訊指令的傳遞基礎,也是一個非常重要的可以被進一步利用的網路基礎協議。所以可以說,XMPP用TCP傳的是XML流。

  • XMPP的相關文檔

推薦一個包含XMPP相關資料的百度空間:http://hi.baidu.com/jabber/home

XMPP官網:http://xmpp.org/

Jabber官網,包含許多XMPP的實現:http://www.jabber.org/

  • 下一篇詳細介紹XMPP協議相關細節

XMPP協議學習筆記一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.