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

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

即時信息與空間協議(Instant Messaging and Presence Protocal)服務器

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

具體參考:session

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協議一般與其餘應用層協議一塊兒工做。blog

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協議在業界已有成熟的開源實現方案,從開發成本上來說也是頗有優點的。

相關文章
相關標籤/搜索