建築

XMPP 允許全域性可定址客戶端和網路上的伺服器之間的結構化資料的全雙工交換以及請求的併發處理。與 HTTP 和廣泛部署在 Web 上的 Representational State Transfer(REST)體系結構不同,XMPP 連線是有狀態和併發的,並且在單個會話的上下文中可能發生無限數量的事務。此架構有時也稱為併發事務的可用性(ACT)。

定址

為了便於通過網路進行路由,所有 XMPP 地址都是全域性可定址的。與電子郵件一樣,這可以通過 DNS 和聯合客戶端/伺服器架構實現。地址的形式為 localpart@domainpart/resourcepart,其中 localpart 是可選的並且對應於網路的使用者,domainpar 是必需的並且對應於伺服器,resourcepart 是可選的並且指的是該使用者的特定連線客戶端(在 XMPP 中使用者可能是從許多不同的位置登入,例如,在即時訊息的情況下的電話和膝上型電腦,或者在物聯網裝置的情況下使用一個帳戶的許多感測器)。XMPP 還提供用於發現網路上其他地址的存在(可用性)的工具。

有狀態的流

XMPP 連線是長期存在的 TCP 連線,它將 XML 流從客戶端傳輸到伺服器(c2s)或從伺服器傳輸到伺服器(s2s)。讓這些會話長壽和有狀態允許網路中的節點隨時傳輸資料並立即路由或傳送。

路由

流在客戶端和伺服器或伺服器和伺服器之間形成網路上的直接連結。如果客戶希望與網路上的遠端客戶端通訊,則他們首先將資訊傳送到他們的伺服器,該伺服器與遠端伺服器形成伺服器到伺服器的連線,然後遠端伺服器將資訊傳遞給其客戶端。

伺服器

XMPP 網路中的伺服器路由資料,但也有許多其他職責,包括維護會話狀態,儲存客戶端資料(聊天記錄,檔案,沒有客戶端線上接收時傳送的訊息,聯絡人列表等)。它們是處理 XMPP 連線的大多數業務邏輯所在的地方。這允許客戶端儘可能保持愚蠢(包含非常少的邏輯)。