XMPP協議介紹

2021-06-22 09:47:42 字數 2608 閱讀 7235

通訊能夠在這三者的任意兩個之間雙向發生。

伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。

閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms(簡訊),msn,icq等。基本的網路形式是單客戶端通過tcp/ip連線到單伺服器,然後在之上傳輸xml。 

客戶端利用xmpp(基於tcp/ip)訪問server,傳輸的是xml 

client--------server----client

tcp            tcp      tcp

所有從乙個client到另乙個client的jabber訊息和資料都要通過xmpp server。

1.client連線到server

2.server利用本地目錄系統的證書對其認證

3.client制定目標位址,讓server告知目標狀態

4.server查詢,連線並進行相互認證

5.client間進行互動

統一的jid(jabber identifier)

domain:伺服器網域名稱

node: 使用者名稱

resource:屬於使用者的位置或裝置

乙個使用者可以同時以多種資源與同乙個xmpp伺服器連線

xmpp xml包括3個元素:簡單示例:

-此元素確定使用者的狀態

[email protected]/contact

[email protected]/contact>

online

-用於兩個使用者之間傳送資訊

[email protected]/contact

[email protected]/contact

type=「chat」>

hello

-資訊/請求,是乙個請求-響應機制,管理xmpp伺服器上兩個使用者的轉換,允許他們通過相應的xml格式的查詢和響應

[email protected]/contact

id=「id1」 type=「result」>  

iq的主要屬性:type,包括:

get:獲取當前域值

set:設定或替換get查詢的值

result:說明成功的響應了先前的查詢

error:查詢和響應中出現的錯誤

xmpp 協議族基於tcp

xmpp採用sasl作為身份認證協議

sasl包含的資訊:

《服務名》:xmpp

《初始序列》

《交換序列》

《安全層協商》

順序:[tcp]?[tls]?[sasl]?[xmpp]

xmpp採用tls的「start-tls」擴充套件來為通訊雙方提供加密性和資料完整性服務

登入xmpp伺服器過程示例 :

c—client      s—server

步驟:1.client初始流給server

c:" version="1.0「 > 

2.server使用乙個流標記作為響應發給client

s:3.server傳送starttls擴充套件給client,並帶有認證機制與任何其他流特徵

?s:">

plain

digest-md5

">

zlib

" />

" />

4. client傳送starttls命令給server

c:5.server通知client它被允許處理 

s:note:client與server tls協商失敗,server通知client tls協商失敗,並關閉流與tcp連線

6. 如果tls協商成功,client初始化乙個新流給server

c:" version="1.0">

7.server靠傳送帶有任何可利用流特徵的流頭作為響應

s:">

plain

digest-md5

">

zlib

" />

" />

8.client選擇乙個認證機制

c:agh4dwax

9.server通知client認證成功

s:note:如果認證不成功,server通知client認證失敗,並關閉流

10.如果認證成功,client初始化乙個新流給server

c:" version="1.0">

11.server依靠流頭來響應client,並伴隨有另外的特徵

s:">

">

zlib

12.資源繫結:client傳送乙個型別為set的iq,幷包含所需繫結的資源節點

c:spark

13.如果server為client產生了乙個資源識別符號或是接受了由客戶端提供的資源識別符號,它必須返回乙個型別為result的iq節點給client,並必須包含子節點,來為server決定的已連線資源指定全jid

s:spark

username@cyber/spark

14.client向server請求sessionc:

15.server告知client,session已建立

s:

XMPP協議介紹

通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms 簡訊 msn,icq等。基本的網路形式是單客戶端通過tcp ip連線到單伺服器,然後在之上傳輸xml。客戶端利用xmpp 基於tcp i...

XMPP協議實現原理介紹

本文介紹xmpp協議原理及相關資訊。xmpp協議簡介 xmpp extensible messageing and presence protocol 可擴充套件訊息與存在協議 是目前主流的四種im im instant messaging,即時訊息 協議之一,其他三種分別為 即時資訊和空間協議 i...

XMPP協議的原理介紹

xmpp是乙個典型的c s架構,而不是像大多數即時通訊軟體一樣,使用p2p客戶端到客戶端的架構,也就是說在大多數情況下,當兩個客戶端進行通訊時,他們的訊息都是通過伺服器傳遞的 也有例外,例如在兩個客戶端傳輸檔案時 採用這種架構,主要是為了簡化客戶端,將大多數工作放在伺服器端進行,這樣,客戶端的工作就...