XMPP,xmpp協議

來源:互聯網
上載者:User

XMPP,xmpp協議
XMPP-即時通訊技術簡介

(IM -- Instant Messaging)支援使用者線上即時交談。如果要發送一條資訊,使用者需要開啟一個小視窗,以便讓使用者及其朋友在其中輸入資訊並讓交談雙方都看到交談的內容有許多的IM系統,如AOL、Yahoo IM、 MSN以及QQ,它們最大的區別在於各自通訊協議的實現,所以即時通訊技術的核心在於它的傳輸協議協議用來說明資訊在網路上如何傳輸,如果有了統一的傳輸協議,那麼應當可以實現各個IM之間的直接通訊,為了建立即時通訊的統一標準,目前已經出現過的IM協議包括:IETF的對話初始協議(SIP)和即時通訊對話初始協議和表示擴充協議(SIMPLE)、應用交換協議(APEX)、顯示和即時通訊協議(PRIM)及基於XML且開放的可擴充通訊和表示協議(XMPP)協議(常稱為 Jabber 協議)人們多次努力,試圖統一各大主要IM供應商的標準(AOL、Yahoo 及 Microsoft),但無一成功,且每一種IM仍然繼續使用自己所擁有的協議
XMPP-起源
XMPP是基於XML的協議,用於立即訊息(IM)以及線上現場探測。最初,XMPP作為一個架構開發,目標是支援企業環境內的立即訊息和聯機狀態應用程式。XMPP前身是Jabber(1998年),是一個開源組織定義的網路即時通訊協定XMPP是一個分散型通訊網路,這意味著,只要網路基礎設施允許,任何XMPP使用者都可以向其他任何XMPP使用者傳遞訊息。多個XMPP伺服器也可以通過一個專門的“伺服器-伺服器”協議相互連信,提供了建立分散型社交網路和協作架構的可能性儘管XMPP的出現是為了滿足“個人-個人”立即訊息的要求,但它完全不必局限於此任務
XMPP-概述
XMPP是一種基於XML的協議,它繼承了在XML環境中靈活的發展性。這表明XMPP是可擴充的。可以通過發送擴充的資訊來處理使用者的需求,以及在 XMPP的頂端建立如內容發布系統和基於地址的服務等應用程式。而且,XMPP包含了針對伺服器端的軟體協議,使之能與另一個進行通話,這使得開發人員更容易建立客戶應用程式或給一個配置好的系統添加功能XMPP的核心XML流傳輸協議的定義使得XMPP能夠在一個比以往網路通訊協定更規範的平台上。藉助於XML易於解析和閱讀的特性,使得XMPP的協議能夠非常漂亮XMPP的即時通訊擴充應用部分是根據IETF在這之前對即時通訊的一個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如AIM,QQ等有功能完整,完善等先進性XMPP的擴充協議Jingle使得其支援語音和視頻,目前iOS尚不支援XMPP的官方文檔是RFC 3920XMPP協議曾經是Google力推的即時通訊協定,其代表作品是GTalkGoogle Talk是Google的IM工具,除了具有IM功能外,另外還加上了Voip功能,“介面清新大方”,可直接連結Gmail,接受查看郵件由於Google Talk是基於Jabber開源標準,這種標準允許使用者和其它的即時訊息系統相連,比如蘋果電腦的iChat,GAIM,Trillian Pro以及Psi。Google Talk只能夠在Windows平台上運行Google Talk的使用者無法使用這種軟體與AIM,MSN Messenger或者雅虎Messenger的使用者進行互連2013年5月,在Google I/O大會上,Google推出統一跨平台聊天應用Hangouts(環聊)取代Google TalkGoogle Hangouts不支援XMPP協議。Google Hangouts使用者與非Google服務如XMPP協議的強有力支援者jabber.org之間的交流無法進行目前,Google Wave是基於XMPP協議的,並且Google還開發Jingle擴充進行基於XMPP協議的視訊交談。儘管Google尚未宣布Talk的關閉日期,不過從Google關閉Reader和iCal支援來看,Talk關閉之日不會太遠
XMPP-定義
XMPP:The Extensible Messaging and Presence Protocol(可擴充通訊和表示協議)XMPP可用於服務類即時通訊、表示和需求響應服務中的XML資料元串流。XMPP以Jabber協議為基礎,而Jabber是即時通訊中常用的開放式協議XMPP是基於XML的協議,用於立即訊息(IM)以及線上現場探測。促進伺服器之間的准即時操作。這個協議可能最終允許網際網路使用者向網際網路上的其他任何人傳送立即訊息,即使其作業系統和瀏覽器不同
XMPP-基本結構
XMPP是一個典型的C/S架構,而不是像大多數即時通訊軟體一樣,使用P2P用戶端到用戶端的架構,也就是說在大多數情況下,當兩個用戶端進行通訊時, 他們的訊息都是通過伺服器傳遞的。採用這種架構,主要是為了簡化用戶端,將大多數工作放在伺服器端進行XMPP中定義了三個角色,用戶端,伺服器,網關。通訊能夠在這三者的任意兩個之間雙向發生伺服器同時承擔了用戶端資訊記錄,串連管理和資訊的路由功能網關承擔著與異構即時通訊系統的互聯互連,異構系統可以包括SMS(簡訊),MSN,ICQ等基本的網路形式是單用戶端通過TCP/IP串連到單伺服器,然後在之上傳輸XML流
XMPP-工作原理
節點串連到伺服器伺服器利用本地目錄系統中的認證對其認證節點指定目標地址,讓伺服器告知目標狀態伺服器尋找、串連並進行相互認證節點之間進行互動
XMPP-傳輸內容
XMPP應用傳輸的是與即時通訊相關的指令。在以前這些命令要麼用二進位的形式發送(比如QQ),要麼用純文字指令加空格加參數加分行符號的方式發送(比如MSN)而XMPP傳輸的即時通訊指令的邏輯與以往相仿,只是協議的形式變成了XML格式的純文字。這不但使得解析容易了,人也容易閱讀了,方便了開發和查錯而XMPP的核心部分就是一個在網路上分區段發送XML的流協議。這個流協議是XMPP的即時通訊指令的傳遞基礎,也是一個非常重要的可以被進一步利用的網路基礎協議,可以說XMPP用TCP傳的是XML流XMPP是一種類似於HTTP協議的一種資料轉送協議,其過程就如同“解封裝--〉封裝”的過程。只需要理解其接收的類型及返回的類型,便可以很好的利用XMPP來進行資料通訊[XMPP官方網站](http://xmpp.org)
XMPP-優缺點
優點開放標準(XMPP的技術規格已被定義在RFC 3920及RFC 3921)證實可用,Google證實了GTalk分散安全可擴充缺點資料負載過重XML沒有二進位傳輸

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.