xmpp(extensible messageing and presence protocol:可擴充套件訊息與存在協議)是目前主流的四種im(im:instant messaging,即時訊息)協議之一,其他三種分別為:即時資訊和空間協議(impp)、空間和即時資訊協議(prim)、針對即時通訊和空間平衡擴充的程序開始協議sip(******)。
在這四種協議中,xmpp是最靈活的。xmpp是一種基於xml的協議,它繼承了在xml環境中靈活的發展性。因此,基於xmpp的應用具有超強的可擴充套件性。經過擴充套件以後的xmpp可以通過傳送擴充套件的資訊來處理使用者的需求,以及在xmpp的頂端建立如內容發布系統和基於位址的服務等應用程 序。而且,xmpp包含了針對伺服器端的軟體協議,使之能與另乙個進行通話,這使得開發者更容易建立客戶應用程式或給乙個配好系統新增功能。
1、什麼是xmpp ?
xmpp的前身是jabber,乙個開源形式組織產生的網路即時通訊協議。xmpp目前被ietf國際標準組織完成了標準化工作。標準化的核心結果分為兩部分;
核心的xml流傳輸協議
基於xml流傳輸的即時通訊擴充套件應用
xmpp的核心xml流傳輸協議的定義使得xmpp能夠在乙個比以往網路通訊協議更規範的平台上。借助於xml易於解析和閱讀的特性,使得xmpp的協議能夠非常漂亮。
xmpp的即時通訊擴充套件應用部分是根據ietf在這之前對即時通訊的乙個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如aim,qq等有功能完整,完善等先進性。
2、xmpp的基本網路結構是怎樣的?
xmpp中定義了三個角色,客戶端,伺服器,閘道器。通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms(簡訊),msn,icq等。基本的網路形式是單客戶端通過tcp/ip連線到單伺服器,然後在之上傳輸xml。
3、xmpp通過tcp傳什麼了?
4、舉個例子看看所謂的xml流是什麼樣子的?
客戶端:<?xml version='1.0'?>
' version='1.0'>
伺服器:<?xml version='1.0'?>
' version='1.0'>
...其他通訊...
' to='
' xml:lang='en'>
客戶端: art thou not romeo, and a montague?
客戶端:
' to='
' xml:lang='en'>
伺服器:neither, fair saint, if either thee dislike.
伺服器:
客戶端:
伺服器:
以文件的觀點來看,客戶端或伺服器傳送的所有xml文字連綴在一起,從到構成了乙個完整的xml文件。其中的stream標籤就是所謂的xml stream。在與中間的那些...這樣的xml元素就是所謂的xml stanza(xml節)。xmpp核心協議通訊的基本模式就是先建立乙個stream,然後協商一堆安全之類的東西,中間通訊過程就是客戶端傳送xml stanza,乙個接乙個的。伺服器根據客戶端傳送的資訊以及程式的邏輯,傳送xml stanza給客戶端。但是這個過程並不是一問一答的,任何時候都有可能從乙個方發信給另外一方。通訊的最後階段是關閉流,關閉tcp/ip連線。
採用xmpp協議的即時通訊應用,當數google吧,google talk是基於xmpp協議,而且它還允許其它im自由使用xmpp協議。如此一來,任何im**商在遵循xmpp協議的前提下,都可以隨時與google talk實現免費連線.
附:主流的四種im通訊協議簡介
impp:impp主要定義必要的協議和資料格式,用來構建乙個具有空間接收、發布能力的即時資訊系統。到目前為止,這個組織已經出版了三個草案rfc,但主要的有兩個:乙個是針對站點空間和即時通訊模型的(rfc 2778);另乙個是針對即時通訊/空間協議需求條件的(rfc2779)。rfc2778是乙個資料性質的草案,定義了所有presence和im服務的原理。rfc2779定義了impp的最小需求條件。另外,這個草案還就presence服務定義了一些條款,如執行的命令、資訊的格式,以及presence伺服器如何把presence的狀態變化通知給客戶。
XMPP協議學習
xmpp協議簡介 xmpp extensible messageing and presence protocol 可擴充套件訊息與存在協議 是目前主流的四種im im instant messaging,即時訊息 協議之一,其他三種分別為 即時資訊和空間協議 impp 空間和即時資訊協議 prim...
XMPP協議介紹
通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms 簡訊 msn,icq等。基本的網路形式是單客戶端通過tcp ip連線到單伺服器,然後在之上傳輸xml。客戶端利用xmpp 基於tcp i...
XMPP協議介紹
通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms 簡訊 msn,icq等。基本的網路形式是單客戶端通過tcp ip連線到單伺服器,然後在之上傳輸xml。客戶端利用xmpp 基於tcp i...