基於XMPP的即時通訊系統的建立(一)— XMPP基礎概念

檀志文發表於2017-12-14

IMPP(http://www.cnblogs.com/jiyuqi/tag/xmpp/)

即時資訊與空間協議(Instant Messaging and Presence Protocal)

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

具體參考:

https://en.wikipedia.org/w/index.php?title=Instant_Messaging_and_Presence_Protocol&redirect=no

SIP(SIMPLE)

SIP(Session Initiation Protocol)

SIP一種用於信令和控制多媒體通訊session的協議。其最常見的應用是通過SIP協議實現的語音和視訊網路電話,以及通過IP網路實現的即時訊息通訊。該協議規定了在各通訊方中傳遞的訊息,這些訊息決定這一個網路電話的建立、終止以及其他必要的步驟。SIP協議可以用於建立、修改和終止一個或多個媒體連線。SIP是一個應用層協議,被設計為獨立於下層的傳輸層。它是一個基於文字的協議,結合了很多HTTP和SMTP協議的元素。SIP協議通常與其他應用層協議一起工作。

SIMPLE(The Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions)

SIMPLE協議是由IETF定義的基於SIP的一個即時訊息(IM)和空間協議套。與現今廣泛使用的軟體實現即時通訊與空間協議相比,SIMPLE是類似於XMPP的公開標準。

SIMPLE使用SIP協議傳送presence資訊。SIP是IETF為終端定製的一種協議,其一般用於建立語音通話中,一旦建立連線後,使用實時協議(RTP)進行實際上的語音傳送。但SIP不僅可以用在語音上,也可以用在視訊上。SIMPLE被定義為一個建立IM程式的方法。

XMPP

可擴充套件的訊息與空間協議(Extensible Messaging and Presence Protocol)

該協議的前身是Jabber,我們採取XMPP協議主來實現IM主要是考慮XMPP協議是以XML為基礎的,它繼承了在XML環境中靈活的發展性。這表明XMPP是可擴充套件的,所以XMPP資訊不僅可以是簡單的文字,而且可以攜帶複雜的資料和各種格式的檔案,也就是說XMPP協議不僅可以用在人與人之間的交流,而且可以實現軟體與軟體或軟體與人之間的交流,目前支援XMPP協議的即時通訊工具有Gtalk、FaceBook IM、Twitter、網易POPO等等通訊工具。

協議選型

在以上四種協議中,XMPP協議是最為靈活的,XMPP協議基於XML,因此具有良好的擴充套件性,經過擴充套件後的XML協議可以傳送擴充套件資訊處理使用者的需求,以及在XMPP頂端建立如內容釋出系統和基於地址的服務等應用程式。而且XMPP包含了針對伺服器的軟體協議,使之能與另外一個通話,這使得開發者更容易建立客戶應用程式或給一個配置好的系統新增功能。

另外,XMPP協議在業界已有成熟的開源實現方案,從開發成本上來講也是很有優勢的。

相關文章