fbpx
维基百科

XMPP

XMPP(全称:Extensible Messaging and Presence Protocol,旧名Jabber[1],中文可译为可扩展消息和表示协议)是一种以XML為基礎的開放式即時通訊協定,是經由網際網路工程工作小組(IETF)通過的網際網路標準。

XMPP
國際標準RFC 6120 (Core) (2011)

RFC 6121 (IM & Presence) (2011)
RFC 7622 (Address Format) (2015)
RFC 3922 (CPIM) (2004)

RFC 3923 (Encryption) (2004)
規範發布1999年,​24年前​(1999
使用於即時通訊
官方网站xmpp.org

歷史 编辑

 
Jabber
 
XMPP

Jeremie Miller于1998年开始了这个项目。第一个公开版本于2000年5月发行。这个项目的主要产品是jabberd,XMPP的服务器端软件。它既可以创建私人的XMPP网络,也可以加入全球的公共XMPP网络。XMPP的關鍵特色是,分散式的即時通訊系統,以及使用XML串流。

Jabber已经由IETF XMPP协议()标准化。

Jabber是一個開放源碼形式組織產生的網絡即時通信協議。XMPP原本是為即时通讯而量身定製,但由於XML Stanza本身是XML元素,在基於XML靈活發展的特性下,使得XMPP也可以適用其他方面,已經得到了IETF的批准。XMPP與IMPP、PRIM、SIPSIMPLE)合稱四大IM協議主流,在此4大协议中,XMPP是最灵活的。

2007年,2001年成立的Jabber軟件基金會更名為XMPP標準基金會[2]

特色 编辑

優點 编辑

開放
XMPP協议是自由、開放、公開的,並且易於瞭解。而且在客戶端伺服器元件源碼庫等方面,都已經各自有多種實作。
標準
網際網路工程工作小組(IETF)已經將Jabber的核心XML串流協定以XMPP之名,正式列為認可的即時通訊及Presence技術。而XMPP的技術規格已被定義在RFC 3920及RFC 3921。任何IM供应商在遵循XMPP协议下,都可與Google Talk实现连接。
證實可用
第一個Jabber(现在XMPP)技術是Jeremie Miller在1998年開發的,現在已經相當穩定;數以百計的開發者為XMPP技術而努力。今日的網際網路上有數以萬計的XMPP伺服器運作著,並有數以百萬計的人們使用XMPP即時傳訊軟體。
分散式
XMPP網路的架構和電子郵件十分相像;XMPP核心协议通信方式是先建立一个stream,XMPP以TCP傳遞XML資料流,沒有中央主伺服器。任何人都可以運行自己的XMPP伺服器,使個人及組織能夠掌控他們的即時傳訊體驗。
安全
任何XMPP協議的伺服器可以獨立於公眾XMPP網路(例如在企業內部網路中),而使用SASLTLS等技術的可靠安全性,已內建於核心XMPP技術規格中。
可擴展
XML命名空間的威力可使任何人在核心協定的基礎上建造客製化的功能;為了維持通透性,常見的擴充套件由XMPP標準基金會
彈性佳
XMPP除了可用在即時通訊的應用程式,還能用在網路管理、內容供稿、協同工具、檔案共享、遊戲、遠端系統監控等。
多樣性
用XMPP協定來建造及布署即時應用程式及服務的公司及開放源碼計劃分布在各種領域;用XMPP技術開發軟體,資源及支援的來源是多樣的,使得使你不會陷於被「綁架」的困境。

缺點 编辑

資料負載太重
隨著通常超過70%的XMPP協議的伺服器的資料流量的存在和近60%的被重複轉發,XMPP協議目前擁有一個大型架空中存在的資料提供給多個收件人。新的議定書正在研究,以減輕這一問題。
二進制資料傳輸受限
XMPP傳輸單一的XML文件,因此要透過XMPP傳輸二進制資料,需先將二進制資料以Base64編碼。但是大量的二進制資料傳輸,較佳的作法是用外部的其他協定傳輸,而以XMPP進行溝通。至於其他二進制資料加密會話(encrypted conversations)或圖形圖標(graphic icons)以嵌入式使用相同的方法。

運作方式 编辑

XMPP網路是基於伺服器的(即客戶端之間彼此不直接交談),但是也是分散式的。不像AOL即時通或MSN Messenger等服務,XMPP沒有中央官方伺服器。Jabber.org的公眾伺服器上有大量的用戶,所以有些人誤解了,以為它是官方伺服器,不過事實上任何人都可以在自己的網域上運行XMPP伺服器。

 
一个标准的JID

Jabber識別符(JID)是用戶登入時所使用的帳號,看起来通常像一个电子邮件地址,如someone@example.com;前半部分为用户名,后半部分为XMPP服务器域名,兩個欄位以@符號區隔。

假設朱麗葉(juliet@capulet.com)想和羅密歐(romeo@montague.net)通話,他們兩人的帳號分別在Capulet.com及Montague.net的伺服器上。當朱麗葉輸入訊息並按下傳送鈕之後,一連串的事件就發生了:

  1. 朱麗葉的XMPP客戶端將她的訊息傳送到Capulet.com XMPP伺服器。
  2. Capulet.com XMPP伺服器開啟與Montague.net XMPP伺服器的連接。
  3. Montague.net XMPP伺服器將訊息寄送給羅密歐。如果他目前不在線上,那麼儲存訊息以待稍後寄送。
Juliet
 
Capulet.com
 
Montague.net
 
Romeo

羅密歐與朱麗葉兩人的XMPP服務是由兩家不同的業者所提供的,而他們彼此傳訊時,不須擁有對方伺服器的帳號,也不須成為對方業者的會員。

與其他協議互聯 编辑

 
各IM之間的互傳

XMPP協議的另一功能是運輸(transports),也被稱為網關(gateways),可允許用戶透過網路使用其它協議。這可以是其他的即時通訊協議,也可以是不同協議,如短訊(SMS)或電子郵件。

XMPP協議通過HTTP運輸 编辑

在原來的規格,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協議的客戶端,伺服器和程式庫。主要的文章包含了幾個XMPP協議清單客戶的多種平台。

XMPP服务器端软件 编辑

參見 编辑

注釋 编辑

  1. ^ . [2009-09-14]. (原始内容存档于2007-07-03). 
  2. ^ Jabber Software Foundation Renamed to XMPP Standards Foundation (页面存档备份,存于互联网档案馆) 1月16日2007年 - jabber.org (页面存档备份,存于互联网档案馆)仍旧被维护
  3. ^ XEP-0025: Jabber HTTP Polling. [2009-09-08]. (原始内容于2020-10-29). 
  4. ^ XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH). [2009-09-08]. (原始内容于2021-02-13). 
  5. ^ ejabberd Massive Scalability: 1 Node — 2+ Million Concurrent Users | ProcessOne Blog. [2018-06-22]. (原始内容于2018-06-22). 
  6. ^ Uses of XMPP. [2018-06-22]. (原始内容于2018-06-22). 
  7. ^ ejabberd & Nintendo Switch NPNS | ProcessOne Blog. [2019-06-05]. (原始内容于2019-06-05). 
  8. ^ АНБ использует протокол Jabber для чатов — «Хакер». [2018-06-24]. (原始内容于2018-06-25). 
  9. ^ EU-Parlament empfiehlt Jabber statt WhatsApp und prüft Signal | heise online. [2019-10-19]. (原始内容于2019-10-19). 

外部連結 编辑

xmpp, 全称, extensible, messaging, presence, protocol, 旧名jabber, 中文可译为可扩展消息和表示协议, 是一种以xml為基礎的開放式即時通訊協定, 是經由網際網路工程工作小組, ietf, 通過的網際網路標準, 國際標準rfc, 6120, core, 2011, 6121, presence, 2011, 7622, address, format, 2015, 3922, cpim, 2004, 3923, encryption, 2004, 規範發布19. XMPP 全称 Extensible Messaging and Presence Protocol 旧名Jabber 1 中文可译为可扩展消息和表示协议 是一种以XML為基礎的開放式即時通訊協定 是經由網際網路工程工作小組 IETF 通過的網際網路標準 XMPP國際標準RFC 6120 Core 2011 RFC 6121 IM amp Presence 2011 RFC 7622 Address Format 2015 RFC 3922 CPIM 2004 RFC 3923 Encryption 2004 規範發布1999年 24年前 1999 使用於即時通訊官方网站xmpp wbr org 目录 1 歷史 2 特色 2 1 優點 2 2 缺點 3 運作方式 4 與其他協議互聯 5 XMPP協議通過HTTP運輸 6 使用实例 7 實現 7 1 XMPP客户端软件 7 2 XMPP服务器端软件 8 參見 9 注釋 10 外部連結歷史 编辑 nbsp Jabber nbsp XMPP 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是最灵活的 2007年 2001年成立的Jabber軟件基金會更名為XMPP標準基金會 2 特色 编辑優點 编辑 開放 XMPP協议是自由 開放 公開的 並且易於瞭解 而且在客戶端 伺服器 元件 源碼庫等方面 都已經各自有多種實作 標準 網際網路工程工作小組 IETF 已經將Jabber的核心XML串流協定以XMPP之名 正式列為認可的即時通訊及Presence技術 而XMPP的技術規格已被定義在RFC 3920及RFC 3921 任何IM供应商在遵循XMPP协议下 都可與Google Talk实现连接 證實可用 第一個Jabber 现在XMPP 技術是Jeremie Miller在1998年開發的 現在已經相當穩定 數以百計的開發者為XMPP技術而努力 今日的網際網路上有數以萬計的XMPP伺服器運作著 並有數以百萬計的人們使用XMPP即時傳訊軟體 分散式 XMPP網路的架構和電子郵件十分相像 XMPP核心协议通信方式是先建立一个stream XMPP以TCP傳遞XML資料流 沒有中央主伺服器 任何人都可以運行自己的XMPP伺服器 使個人及組織能夠掌控他們的即時傳訊體驗 安全 任何XMPP協議的伺服器可以獨立於公眾XMPP網路 例如在企業內部網路中 而使用SASL及TLS等技術的可靠安全性 已內建於核心XMPP技術規格中 可擴展 XML命名空間的威力可使任何人在核心協定的基礎上建造客製化的功能 為了維持通透性 常見的擴充套件由XMPP標準基金會 彈性佳 XMPP除了可用在即時通訊的應用程式 還能用在網路管理 內容供稿 協同工具 檔案共享 遊戲 遠端系統監控等 多樣性 用XMPP協定來建造及布署即時應用程式及服務的公司及開放源碼計劃分布在各種領域 用XMPP技術開發軟體 資源及支援的來源是多樣的 使得使你不會陷於被 綁架 的困境 缺點 编辑 資料負載太重 隨著通常超過70 的XMPP協議的伺服器的資料流量的存在和近60 的被重複轉發 XMPP協議目前擁有一個大型架空中存在的資料提供給多個收件人 新的議定書正在研究 以減輕這一問題 二進制資料傳輸受限 XMPP傳輸單一的XML文件 因此要透過XMPP傳輸二進制資料 需先將二進制資料以Base64編碼 但是大量的二進制資料傳輸 較佳的作法是用外部的其他協定傳輸 而以XMPP進行溝通 至於其他二進制資料加密會話 encrypted conversations 或圖形圖標 graphic icons 以嵌入式使用相同的方法 運作方式 编辑XMPP網路是基於伺服器的 即客戶端之間彼此不直接交談 但是也是分散式的 不像AOL即時通或MSN Messenger等服務 XMPP沒有中央官方伺服器 Jabber org的公眾伺服器上有大量的用戶 所以有些人誤解了 以為它是官方伺服器 不過事實上任何人都可以在自己的網域上運行XMPP伺服器 nbsp 一个标准的JIDJabber識別符 JID 是用戶登入時所使用的帳號 看起来通常像一个电子邮件地址 如someone example com 前半部分为用户名 后半部分为XMPP服务器域名 兩個欄位以 符號區隔 假設朱麗葉 juliet capulet com 想和羅密歐 romeo montague net 通話 他們兩人的帳號分別在Capulet com及Montague net的伺服器上 當朱麗葉輸入訊息並按下傳送鈕之後 一連串的事件就發生了 朱麗葉的XMPP客戶端將她的訊息傳送到Capulet com XMPP伺服器 Capulet com XMPP伺服器開啟與Montague net XMPP伺服器的連接 Montague net XMPP伺服器將訊息寄送給羅密歐 如果他目前不在線上 那麼儲存訊息以待稍後寄送 Juliet displaystyle leftrightarrow nbsp Capulet com displaystyle leftrightarrow nbsp Montague net displaystyle leftrightarrow nbsp Romeo羅密歐與朱麗葉兩人的XMPP服務是由兩家不同的業者所提供的 而他們彼此傳訊時 不須擁有對方伺服器的帳號 也不須成為對方業者的會員 與其他協議互聯 编辑 nbsp 各IM之間的互傳XMPP協議的另一功能是運輸 transports 也被稱為網關 gateways 可允許用戶透過網路使用其它協議 這可以是其他的即時通訊協議 也可以是不同協議 如短訊 SMS 或電子郵件 XMPP協議通過HTTP運輸 编辑在原來的規格 XMPP協議可以使用HTTP的方式有兩種 輪詢 polling 3 與綁定 binding 4 輪詢現在不推薦 基本上 輪詢意味著HTTP郵件存儲在伺服器端的資料庫上 客戶端必須一再地以HTTP的GET和POST的方式去抓取 以及刊出 其中的訊息 然而使用綁定的方式時 客戶端會保留一個長存的HTTP連線 等待一旦伺服器有新的訊息時 就立刻接收訊息 因為輪詢的結果往往是伺服端沒有新訊息 這種推送的通知模式比輪詢的方式更有效率 由於客戶端使用HTTP 大多數防火牆允許客戶端獲取和留言沒有任何障礙 因此 即使使用XMPP協議的TCP端口被攔截 伺服器也能正常地傾聽一般的HTTP端口 其上的訊息也能保持暢通 還有一些網站更允許大眾經由瀏覽器登入進XMPP 尤有甚者 還有一些公共的伺服器同時擁有標準HTTP 80埠 和HTTPS 443埠 因此又有助於通過防火牆 使用实例 编辑XMPP 服务器的高容错性和低开销 5 使得许多大公司使用 XMPP 作为其基础平台来创建私人信使和聊天 以及提供推送通知 6 WhatsApp 8 亿用户 使用修改后的XMPP协议进行聊天 艺电 4000 万用户 使用XMPP进行聊天 Nintendo Switch NPNS 3500万台设备 使用XMPP传递新闻 通知和其他消息 7 Odnoklassniki 4200万用户 用户之间的内部消息传递通过XMPP客户端提供社交网络连接 英雄联盟 2700万用户 使用XMPP进行聊天 无冬online 1600万用户 使用XMPP进行聊天 堡垒之夜 2 5亿用户 使用XMPP进行聊天 星战前夜 90万用户 使用XMPP进行聊天 Google 15亿用户 使用XMPP传递推送通知 蘋果公司 5亿用户 使用XMPP传递推送通知 美国国家安全局 使用 XMPP 进行内部通信 8 欧洲议会 欧洲议会安全局建议议员使用Cisco Jabber而不是Signal或WhatsApp 9 實現 编辑XMPP客户端软件 编辑 主条目 XMPP協議的客戶端軟體列表 XMPP協議是由大量的XMPP協議的客戶端 伺服器和程式庫 主要的文章包含了幾個XMPP協議清單客戶的多種平台 XMPP服务器端软件 编辑 主条目 XMPP協議伺服器軟體列表參見 编辑即时通讯软件比较 流文本定向消息協議 英语 Streaming Text Oriented Messaging Protocol STOMP 由Codehaus開發 基於文本的消息的傳輸協議 使用類似JMS的 目的地 語義 高級消息隊列協議 AMQP 一種面向消息中間件提供的開放的應用層協議 消息隊列遙測傳輸 MQTT 一種輕量級訂閱 發布協議 注釋 编辑 Jabber Inc About Us 2009 09 14 原始内容存档于2007 07 03 Jabber Software Foundation Renamed to XMPP Standards Foundation 页面存档备份 存于互联网档案馆 1月16日2007年 jabber org 页面存档备份 存于互联网档案馆 仍旧被维护 XEP 0025 Jabber HTTP Polling 2009 09 08 原始内容存档于2020 10 29 XEP 0124 Bidirectional streams Over Synchronous HTTP BOSH 2009 09 08 原始内容存档于2021 02 13 ejabberd Massive Scalability 1 Node 2 Million Concurrent Users ProcessOne Blog 2018 06 22 原始内容存档于2018 06 22 Uses of XMPP 2018 06 22 原始内容存档于2018 06 22 ejabberd amp Nintendo Switch NPNS ProcessOne Blog 2019 06 05 原始内容存档于2019 06 05 ANB ispolzuet protokol Jabber dlya chatov Haker 2018 06 24 原始内容存档于2018 06 25 EU Parlament empfiehlt Jabber statt WhatsApp und pruft Signal heise online 2019 10 19 原始内容存档于2019 10 19 外部連結 编辑XMPP标准基金会 页面存档备份 存于互联网档案馆 Open list of public XMPP servers 页面存档备份 存于互联网档案馆 XMPP Case Studies 页面存档备份 存于互联网档案馆 XMPP Jabber 聊天快速指南由北京GNU Linux用户组撰写 取自 https zh wikipedia org w index php title XMPP amp oldid 76934277, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。