Loading AI tools
来自维基百科,自由的百科全书
XMPP(全稱:Extensible Messaging and Presence Protocol,舊名Jabber[1],中文可譯為可延伸訊息和表示協定)是一種以XML為基礎的開放式即時通訊協定,是經由互聯網工程工作小組(IETF)通過的互聯網標準。
Jeremie Miller於1998年開始了這個專案。第一個公開版本於2000年5月發行。這個專案的主要產品是jabberd,XMPP的伺服器端軟件。它既可以建立私人的XMPP網絡,也可以加入全球的公共XMPP網絡。XMPP的關鍵特色是,分散式的即時通訊系統,以及使用XML串流。
Jabber已經由IETF XMPP協定(RFC3920)標準化。
Jabber是一個開放原始碼形式組織產生的網絡即時通訊協定。XMPP原本是為即時通訊而量身定製,但由於XML Stanza本身是XML元素,在基於XML靈活發展的特性下,使得XMPP也可以適用其他方面,已經得到了IETF的批准。XMPP與IMPP、PRIM、SIP(SIMPLE)合稱四大IM協定主流,在此4大協定中,XMPP是最靈活的。
XMPP網絡是基於伺服器的(即客戶端之間彼此不直接交談),但是也是分散式的。不像AOL即時通或MSN Messenger等服務,XMPP沒有中央官方伺服器。Jabber.org的公眾伺服器上有大量的用戶,所以有些人誤解了,以為它是官方伺服器,不過事實上任何人都可以在自己的網域上運行XMPP伺服器。
Jabber識別符(JID)是用戶登入時所使用的帳號,看起來通常像一個電子郵件地址,如someone@example.com;前半部分為用戶名,後半部分為XMPP伺服器域名,兩個欄位以@符號區隔。
假設朱麗葉(juliet@capulet.com)想和羅密歐(romeo@montague.net)通話,他們兩人的帳號分別在Capulet.com及Montague.net的伺服器上。當朱麗葉輸入訊息並按下傳送鈕之後,一連串的事件就發生了:
|
|
|
|
羅密歐與朱麗葉兩人的XMPP服務是由兩家不同的業者所提供的,而他們彼此傳訊時,不須擁有對方伺服器的帳號,也不須成為對方業者的會員。
XMPP協定的另一功能是運輸(transports),也被稱為網關(gateways),可允許用戶透過網絡使用其它協定。這可以是其他的即時通訊協定,也可以是不同協定,如短訊(SMS)或電子郵件。
在原來的規格,XMPP協定可以使用HTTP的方式有兩種:輪詢(polling)[3]與綁定(binding)[4]。輪詢現在不推薦,基本上,輪詢意味着HTTP郵件儲存在伺服器端的資料庫上,客戶端必須一再地以HTTP的GET和POST的方式去抓取(以及刊出)其中的訊息。然而使用綁定的方式時,客戶端會保留一個長存的HTTP連線,等待一旦伺服器有新的訊息時,就立刻接收訊息。因為輪詢的結果往往是伺服端沒有新訊息,這種推播的通知模式比輪詢的方式更有效率。
由於客戶端使用HTTP,大多數防火牆允許客戶端獲取和留言沒有任何障礙。因此,即使使用XMPP協定的TCP埠被攔截,伺服器也能正常地傾聽一般的HTTP埠,其上的訊息也能保持暢通。還有一些網站更允許大眾經由瀏覽器登入進XMPP。尤有甚者,還有一些公共的伺服器同時擁有標準HTTP(80埠)和HTTPS(443埠),因此又有助於通過防火牆。
XMPP 伺服器的高容錯性和低開銷[5]使得許多大公司使用 XMPP 作為其基礎平台來建立私人信使和聊天,以及提供推播通知[6]。
XMPP協定是由大量的XMPP協定的客戶端,伺服器和程式庫。主要的文章包含了幾個XMPP協定清單客戶的多種平台。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.