XMPP 的全稱是什麼?
什麼是 XMPP?
XMPP 代表 **可擴充套件訊息處理和出席協議**。此協議可用於語音通話、視訊通話、多人聊天、即時訊息傳遞等。最初,該協議是為 Jabber 開源服務開發的。當時,該協議用於即時訊息傳遞。
XMPP 各字母解釋
這裡我們將瞭解每個字元的含義。
X 代表可擴充套件。XMPP 是一個開源專案,專業人員可以根據需要對其進行更改。
M 表示 XMPP 協議中的推送機制比其他協議要好得多。XMPP 的開發是為了能夠即時地將訊息從一端傳送到另一端。
P 是使用者的狀態,無論他們是線上、離線還是忙碌。
P 表示 XMPP 是一種協議,系統可以使用它相互通訊。
XMPP 協議的特性
XMPP 具有許多功能,如下所示 -
非同步推送訊息
XMPP 提供了非同步推送訊息的功能。無論接收方是否線上,訊息都將傳遞給他們。XML 片段是共享訊息的格式。這些片段包含傳送方和接收方的 Jabber ID、元資料和訊息正文。
客戶端-伺服器架構
XMPP 使用客戶端-伺服器架構來傳遞訊息。XMPP 僅分發傳送到伺服器然後傳送到客戶端的一小部分 XML。XMPP 客戶端被賦予不同的名稱,用於將訊息傳送到特定客戶端。
持久 TCP 連線
XMPP 只能藉助 TCP 連線傳輸資料。建立連線後,傳送新訊息時無需重新建立連線。
託管是去中心化的
沒有中央機構來控制伺服器。由於這種靈活性,任何人都可以擁有、執行、管理和維護伺服器。使用者可以在雲端或本地擁有伺服器。
閘道器
XMPP 還有另一個很棒的功能,那就是為用於訊息傳遞和聊天的不同協議提供不同的閘道器。XMPP 與不同的協議相容。
XMPP 技術型別
XMPP 技術有很多型別,下面將詳細討論。
核心
XMPP 是一種在其核心用於透過網路流式傳輸 XML 的技術。這些核心技術包括以下內容 -
XML 流層
透過 TLS(傳輸層安全性)進行通道加密
用於強身份驗證的簡單身份驗證和安全層
UTF-8 用於 Unicode 支援
Jingle
Jingle 是一種技術,Jabber 客戶端可以使用它來管理和設定多媒體會話。這些會話支援不同型別的應用程式。應用程式型別包括語音聊天、影片聊天、檔案傳輸等。Jingle 還使用不同的傳輸方法,如 TCP、RTP、UDP 等。
多使用者聊天
MUC(多使用者聊天)是 XMPP 的擴充套件,可用於在不同參與方之間交換訊息。使用者可以享受聊天室功能,包括邀請、房間主題等。使用者還可以選擇在需要時阻止其他使用者。除了文字訊息外,還可以共享 XML 有效負載。
PubSub
PubSub 是一種協議擴充套件,可用於釋出-訂閱功能。該協議能夠啟用 XMPP 在 pubsub 服務中建立不同型別的節點,並在每個節點上釋出資訊。所有已訂閱節點的使用者都會收到有關新發布的通知。
BOSH
BOSH 可以擴充套件為透過同步 HTTP 進行雙向流。它是一種技術,其中在 HTTP(超文字傳輸協議)上進行雙向通訊。對於需要推送和拉取通知的應用程式,BOSH 是一個不錯的選擇。BOSH 頻寬效率高,並且用於 Jabber 客戶端和伺服器之間。
XMPP 如何工作?
XMPP 基於客戶端-伺服器架構,因此訊息首先發送到伺服器,然後傳輸到客戶端。XMPP 建立一個稱為 Jabber ID 的唯一 ID,該 ID 提供要將訊息傳送到的客戶端的詳細資訊。XMPP 伺服器使用此 ID 透過 TCP 連線路由訊息。與伺服器共享 XML 伺服器流,並藉助 Jabber ID 識別客戶端。伺服器在識別客戶端後將啟動另一個 XML 流。伺服器將向客戶端傳送流,並將 XML 流變為雙向。
WebSocket 和 XMPP 之間的區別
這兩個協議之間存在許多差異,其中一些在下面的表格中列出 -
| 方面 | XMPP | WebSocket |
|---|---|---|
| 安全性 | 一種安全的協議 | 需要改進安全保障 |
| 操作 | 去中心化協議 | 集中化協議 |
| 與其他協議的相容性 | XMPP 與 API 不相容 | WebSocket 與不同的 API 相容 |
| 二進位制資料 | 資料傳輸相對較慢,因為 XMPP 使用細管道傳輸二進位制資料 | 資料傳輸速度很快,因為 WebSocket 使用二進位制資料 |
| 資料傳輸速度 | 資料傳輸速度相對較慢 | 資料傳輸速度相對較快 |
XMPP 的優勢
開放
它是一個免費、開放和公共的協議,易於理解,可以在伺服器、客戶端、程式碼庫和伺服器元件上實現。
標準
網際網路工程任務組已批准 XML 流協議作為訊息傳遞和出席技術。XMPP 的規範也以 RFC 3920 和 RFC 3921 的形式於 2004 年釋出。RFC 於 2011 年進行了修訂,並導致了 RFC 6120、RFC 6121 和 RFC 7622 的開發。
久經考驗
Jeremie Miller 於 1998 年開發了第一項 XMPP 技術,現在由於其穩定性,許多開發人員都在使用這項技術。大量 XMPP 伺服器在網際網路上執行,並且被數百萬使用者用於即時訊息傳遞。
去中心化
允許使用者擁有自己的 XMPP 伺服器,這將有助於他們控制自己的通訊。
安全性
XMPP 伺服器可以輕鬆地進行保護,因為使用者能夠將其隔離。藉助 SASL 和 TLS,可以將 XMPP 伺服器與公共網路隔離。
可擴充套件
您可以使用 XML 透過核心協議開發自定義功能。您可以建立功能以維護互操作性。您可以在 XEP 系列中找到擴充套件。
靈活
XMPP 應用程式可用於不同的目的,例如內容聯合、檔案共享、協作監控等等。
多樣化
許多組織正在使用 XMPP 開發和部署他們的專案。
結論
XMPP 是一種安全的協議,用於將訊息從傳送方傳輸到接收方。它被認為是一種安全的郵件協議,並且基於客戶端-伺服器架構。該協議具有許多功能,因此被許多專業人士使用。
常見問題
問 1 - XMPP 的全稱是什麼?
答 - XMPP 代表可擴充套件訊息處理和出席協議。
問 2 - XMPP 安全嗎?
答 - 是的!XMPP 是一種安全的協議。
問 3 - XMPP 是否使用 TCP 連線傳送和接收訊息?
答 - 是的!XMPP 使用 TCP 連線進行通訊。
問 4 - 為什麼 WebSocket 的速度比 XMPP 快?
答 - WebSocket 使用二進位制資料,從而提高了資料傳輸速度。
問 5 - WebSocket 比 XMPP 更安全嗎?
答 - 否!XMPP 更安全。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP