XMPP 協議的原理和介紹

2021-07-15 02:23:57 字數 1516 閱讀 1020

xmpp 協議是什麼:

xmpp 的優點:

1、xmpp 協議是公開的,並不屬於某個機構或者個人

2、xmpp 協議具有良好的擴充套件性,xmpp 充分的發揮了 xml 結構化資料的通用傳輸層的作用,它將出席和上下文敏感資訊嵌入到 xml 結構化資料中,從而使得資料以高效率傳送。

3、分布式的網路架構、它是基於伺服器和客戶端是分離的,但是xmpp本身並沒有這樣的限制

4、xmpp 具有很好的彈性、它不僅僅用於即時通訊的應用程式、還可以適用於網路管理、協同工具、遠端系統監控等。

5、安全性 xmpp 的伺服器-客戶端通訊和客戶端伺服器通訊都採用的是 tls 協議作為通道通訊的加密方法,保證了通訊的安全性。

xmpp 的網路架構:

xmpp是乙個典型的c/s架構,而不是像大多數即時通訊軟體一樣,使用p2p客戶端到客戶端的架構,也就是說在大多數情況下,當兩個客戶端進行通訊時,他們的訊息都是通過伺服器傳遞的(也有例外,例如在兩個客戶端傳輸檔案時).採用這種架構,主要是為了簡化客戶端,將大多數工作放在伺服器端進行,這樣,客戶端的工作就比較簡單,而且,當增加功能時,多數是在伺服器端進行.xmpp服務的框架結構如下圖所示.xmpp中定義了三個角色,xmpp客戶端,xmpp伺服器、閘道器.通訊能夠在這三者的任意兩個之間雙向發生.伺服器同時承擔了客戶端資訊記錄、連線管理和資訊的路由功能.閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms(簡訊)、msn、icq等.基本的網路形式是單客戶端通過tcp/ip連線到單伺服器,然後在之上傳輸xml,工作原理是:

節點連線到伺服器;

伺服器利用本地目錄系統中的證書對其認證;

節點指定目標位址,讓伺服器告知目標狀態;

伺服器查詢、連線並進行相互認證;

節點之間進行互動。

簡單的 xmpp 協議通訊流程

1、首先,由客戶端連線到伺服器,客戶端通過io流傳送一段xml檔案,在檔案中包含了自身的使用者名稱和密碼

2、伺服器端接收到客戶端的xml檔案,從中獲取使用者名稱和密碼進行驗證,如果驗證成功,伺服器會傳送乙個xml檔案給客戶端表明已經登入成功。

3、登陸成功後,客戶端可以通過傳送乙個獲取好友名單的xml檔案,伺服器會將當前使用者的好友以xml檔案傳到客戶端。

4、客戶端選擇乙個好友,向其傳送資訊(其實是向伺服器傳送,伺服器收到後會**給對應的好友),好友收到

xmpp 協議中的一些概念

xml 流:即時通訊的聊天是指二進位製流或者是位元組流

客戶端xml 流:

<?xml version='1.0'?> 

to='example.com' 

xmlns='jabber:client' 

xmlns:stream='' 

version='1.0'> 

伺服器 xml 流:

<?xml version='1.0'?> 

from='example.com' 

id='someid' 

xmlns='jabber:client' 

xmlns:stream='' 

version='1.0'> 

XMPP協議的原理介紹

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

XMPP協議實現原理介紹

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

XMPP協議實現原理介紹

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