簡(jiǎn)介:可擴(kuò)展通訊和表示協(xié)議 (XMPP) 可用于服務(wù)類實(shí)時(shí)通訊辅搬、表示和需求 - 響應(yīng)服務(wù)中的 XML 數(shù)據(jù)元流式傳輸互订。XMPP 以 Jabber 協(xié)議為基礎(chǔ)吧慢,而 Jabber 是即時(shí)通訊中常用的開(kāi)放式協(xié)議马靠。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(可擴(kuò)展消息處理現(xiàn)場(chǎng)協(xié)議)是基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的協(xié)議吼鳞,它用于即時(shí)消息(IM)以及在線現(xiàn)場(chǎng)探測(cè)看蚜。它在促進(jìn)服務(wù)器之間的準(zhǔn)即時(shí)操作。這個(gè)協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時(shí)消息赔桌,即使其操作系統(tǒng)和瀏覽器不同供炎。
XMPP的前身是Jabber渴逻,一個(gè)開(kāi)源形式組織產(chǎn)生的網(wǎng)絡(luò)即時(shí)通信協(xié)議。XMPP目前被IETF國(guó)際標(biāo)準(zhǔn)組織完成了標(biāo)準(zhǔn)化工作音诫。標(biāo)準(zhǔn)化的核心結(jié)果分為兩部分惨奕;
核心的XML流傳輸協(xié)議
基于XML FreeEIM流傳輸?shù)募磿r(shí)通訊擴(kuò)展應(yīng)用
XMPP的核心XML流傳輸協(xié)議的定義使得XMPP能夠在一個(gè)比以往網(wǎng)絡(luò)通信協(xié)議更規(guī)范的平臺(tái)上。借助于XML易于解析和閱讀的特性竭钝,使得XMPP的協(xié)議能夠非常漂亮梨撞。
XMPP的即時(shí)通訊擴(kuò)展應(yīng)用部分是根據(jù)IETF在這之前對(duì)即時(shí)通訊的一個(gè)抽象定義的,與其他業(yè)已得到廣泛使用的即時(shí)通訊協(xié)議香罐,諸如AIM卧波,QQ等有功能完整,完善等先進(jìn)性庇茫。
XMPP的擴(kuò)展協(xié)議Jingle使得其支持語(yǔ)音和視頻港粱。
XMPP的官方文檔時(shí)RFC 3920.
XMPP的基本結(jié)構(gòu)
XMPP中定義了三個(gè)角色旦签,客戶端查坪,服務(wù)器,網(wǎng)關(guān)顷霹。通信能夠在這三者的任意兩個(gè)之間雙向發(fā)生咪惠。服務(wù)器同時(shí)承擔(dān)了客戶端信息記錄,連接管理和信息的路由功能淋淀。網(wǎng)關(guān)承擔(dān)著與異構(gòu)即時(shí)通信系統(tǒng)的互聯(lián)互通,異構(gòu)系統(tǒng)可以包括SMS(短信)覆醇,MSN朵纷,ICQ等∮琅В基本的網(wǎng)絡(luò)形式是單客戶端通過(guò)TCP/IP連接到單服務(wù)器袍辞,然后在之上傳輸XML。
XMPP通過(guò)TCP傳的是什么
傳輸?shù)氖桥c即時(shí)通訊相關(guān)的指令常摧。在以前這些命令要么用2進(jìn)制的形式發(fā)送(比如QQ)搅吁,要么用純文本指令加空格加參數(shù)加換行苻的方式發(fā)送(比如MSN)。而XMPP傳輸?shù)募磿r(shí)通訊指令的邏輯與以往相仿落午,只是協(xié)議的形式變成了XML格式的純文本谎懦。這不但使得解析容易了,人也容易閱讀了溃斋,方便了開(kāi)發(fā)和查錯(cuò)界拦。而XMPP的核心部分就是一個(gè)在網(wǎng)絡(luò)上分片斷發(fā)送XML的流協(xié)議。這個(gè)流協(xié)議是XMPP的即時(shí)通訊指令的傳遞基礎(chǔ)梗劫,也是一個(gè)非常重要的可以被進(jìn)一步利用的網(wǎng)絡(luò)基礎(chǔ)協(xié)議享甸。所以可以說(shuō)截碴,XMPP用TCP傳的是XML流。