百科解釋
Jabber是一個開放的、基于XML的協(xié)議。它的用途在即時通訊及Presence資訊方面。
Jeremie Miller于1998年開始了這個項目。第一個公開版本于2000年5月發(fā)行。這個項目的主要產(chǎn)品是jabberd,Jabber的服務(wù)器端軟件。它既可以創(chuàng)建私人的Jabber網(wǎng)絡(luò),也可以加入全球的公共Jabber網(wǎng)絡(luò)。Jabber的關(guān)鍵特色是,分布式的即時通訊系統(tǒng),以及使用XML串流。
Jabber協(xié)定目前由Jabber軟件基金會管理,而Jabber協(xié)定的主要基礎(chǔ)已經(jīng)在RFC3920當(dāng)中以XMPP之名被因特網(wǎng)工程工作小組(IETF)接受為因特網(wǎng)標(biāo)準(zhǔn)。Jabber和以SIP協(xié)定為基礎(chǔ)的SIMPLE常被視為為即時通訊及Presence告知領(lǐng)域的競爭對手,然而XMPP的設(shè)計更傾向提供一個一般用途的、應(yīng)用程式之間的中介軟件設(shè)施。
2005年,Google發(fā)布了Google Talk,這是一個IP電話及即時通訊的服務(wù),即時通訊功能采用了開放的Jabber/XMPP。預(yù)計這將對Jabber社區(qū)起很大的推動作用。初期此服務(wù)不支援服務(wù)器到服務(wù)器的通訊功能,所以未能完全發(fā)揮Jabber的分布式特色;雖然任何Jabber客戶端都能連接到Google Talk,但是用戶若欲登入Google Talk,必須擁有Google Talk帳號(即Gmail帳號),而用戶也無法與公共Jabber網(wǎng)絡(luò)的用戶對談。自2006年1月17日起,服務(wù)器到服務(wù)器的通訊啟用了,Google Talk用戶可與其他Jabber公共網(wǎng)絡(luò)的用戶對談。
開放— Jabber協(xié)定是自由、開放、公開的,并且易于了解。而且在客戶端、服務(wù)器、元件、源碼庫等方面,都已經(jīng)各自有多種實作。
標(biāo)準(zhǔn)— 因特網(wǎng)工程工作小組(IETF)已經(jīng)將Jabber的核心XML串流協(xié)定以XMPP之名,正式列為認(rèn)可的即時通訊及Presence技術(shù)。而XMPP的技術(shù)規(guī)格已被出版為RFC 3920及RFC 3921。
證實可用— 第一個Jabber技術(shù)是Jeremie Miller在1998年開發(fā)的,現(xiàn)在已經(jīng)相當(dāng)穩(wěn)定;數(shù)以百計的開發(fā)者為Jabber技術(shù)而努力。今日的因特網(wǎng)上有數(shù)以萬計的Jabber服務(wù)器運作著,并有數(shù)以百萬計的人們使用Jabber即時傳訊軟件。
分布式— Jabber網(wǎng)絡(luò)的架構(gòu)和電子郵件十分相像;因此任何人都可以運行自己的Jabber服務(wù)器,使個人及組織能夠掌控他們的即時傳訊體驗。
安全— 任何Jabber服務(wù)器可以獨立于公眾Jabber網(wǎng)絡(luò)(例如在企業(yè)內(nèi)部網(wǎng)絡(luò)中),而使用SASL及TLS等技術(shù)的可靠安全性,已內(nèi)建于核心XMPP技術(shù)規(guī)格中。
可擴(kuò)展— XML命名空間的威力可使任何人在核心協(xié)定的基礎(chǔ)上建造客制化的功能;為了維持通透性,常見的擴(kuò)充套件由Jabber軟件基金會管理。
彈性佳— Jabber除了可用在即時通訊的應(yīng)用程式,還能用在網(wǎng)絡(luò)管理、內(nèi)容供稿、協(xié)同工具、檔案共享、游戲、遠(yuǎn)端系統(tǒng)監(jiān)控等。
多樣性— 用Jabber協(xié)定來建造及布署即時應(yīng)用程式及服務(wù)的公司及開放源碼計劃分布在各種領(lǐng)域;用Jabber技術(shù)開發(fā)軟件,資源及支援的來源是多樣的,使得使你不會陷于被“綁架”的困境。
Jabber網(wǎng)絡(luò)是基于服務(wù)器的(即客戶端之間彼此不直接交談),但是也是分布式的。不像AOL即時通或MSN Messenger等服務(wù),Jabber沒有中央官方服務(wù)器。Jabber.org的公眾服務(wù)器上有大量的用戶,所以有些人誤解了,以為它是官方服務(wù)器,不過事實上任何人都可以在自己的網(wǎng)域上運行Jabber服務(wù)器。
Jabber識別符(JID)是用戶登入時所使用的帳號,看起來通常像一個電子郵件地址,如someone@example.com;前半部分為用戶名,后半部分為Jabber服務(wù)器域名,兩個字段以@符號區(qū)隔。
假設(shè)朱麗葉(juliet@capulet.com)想和羅密歐(romeo@montague.net)通話,他們兩人的帳號分別在 Capulet.com 及 Montague.net 的服務(wù)器上。當(dāng)朱麗葉輸入訊息并按下傳送鈕之后,一連串的事件就發(fā)生了:
朱麗葉的Jabber客戶端將她的訊息傳送到Capulet.com Jabber服務(wù)器。
Capulet.com Jabber服務(wù)器開啟與Montague.net Jabber服務(wù)器的連接。
Montague.net Jabber服務(wù)器將訊息寄送給羅密歐。如果他目前不在線上,那么儲存訊息以待稍后寄送。
羅密歐與朱麗葉兩人的Jabber服務(wù)是由兩家不同的業(yè)者所提供的,而他們彼此傳訊時,不須擁有對方服務(wù)器的帳號,也不須成為對方業(yè)者的會員。
Jabber系統(tǒng)有一個獨特的網(wǎng)關(guān)(也稱作傳送器)功能,該功能允許用戶可以使用其他協(xié)議,如AOL、ICQ、MSN、Yahoo、短信或者電子郵件。和Trillian或Gaim等其他多協(xié)議客戶端不同的是,Jabber在服務(wù)器級別提供這個功能,任何Jabber用戶都可以注冊一個這樣的網(wǎng)關(guān)來登錄其他網(wǎng)絡(luò)。也就是說任何支持Jabber協(xié)議的客戶端都可以訪問一個存在的網(wǎng)關(guān),來與其他網(wǎng)絡(luò)上的用戶聯(lián)系。
僅支持Jabber協(xié)議的客戶端軟件
開放源碼
Bombus (J2ME/MIDP 2.0) http://bombus.jrudevels.org/
cabber (跨平臺) http://cabber.sourceforge.net/ (過時)
Exodus (Windows) http://exodus.jabberstudio.org/
Freetalk (Linux/Unix) http://savannah.nongnu.org/projects/freetalk/
Gabber (Linux/Unix) http://gabber.jabberstudio.org/
Gajim (跨平臺) http://www.gajim.org/
GOIM (跨平臺) http://goim.sphene.net/
Gossip (Linux/Unix) http://developer.imendio.com/wiki/Gossip
IMCom (跨平臺) http://nafai.dyndns.org/
Iruka (跨平臺) http://www.nongnu.org/iruka/ (過時)
jabber.el (Emacs Lisp) http://intellectronica.net/emacs-jabber/
JabberFoX (Mac OS X) http://jabberfox.sourceforge.net/ (過時)
Jabberzilla (跨平臺) http://jabberzilla.jabberstudio.org/
Jabber WindowGram Client (跨平臺) http://jwgc.blathersource.org/
JBother (Java) http://jbother.org/
Jeti (Java) http://jeti.jabberstudio.org/
Jeti/2 (Java/eComStation/OS/2) http://www.ehlertronic.de/jeti2.htm
JWChat (Javas cript) http://jwchat.sourceforge.net/
mcabber (跨平臺) http://www.lilotux.net/~mikael/mcabber/ (cabber分支)
moJab (J2ME/MIDP) http://mojab.sf.net/
Psi (跨平臺) http://psi-im.org/
sjabber (跨平臺) http://www.pipetree.com/jabber/sjabber/ (過時)
The Coccinella (跨平臺) http://hem.fyristorg.com/matben/
Tkabber (跨平臺) http://tkabber.jabber.ru/
Whisper IM (Java) https://whisperim.dev.java.net/
wija (Java) http://www.media-art-online.org/wija/
免費軟件
Colibry IM (J2ME/MIDP) http://violonix.com/
Gush (跨平臺) http://2entwine.com/
JAJC (Windows) http://jajc.ksn.ru/
Pandion (Windows) http://www.pandion.be/
Google Talk (Windows) http://www.google.com/talk/
Spark (跨平臺), http://www.jivesoftware.org/spark/
TipicIM]] (Windows) http://www.tipic.com/
商業(yè)軟件
Akeni Jabber Client (跨平臺) http://www.akeni.com/
BellSouth Messenger (Windows) (BellSouth顧客免費) http://messenger.bellsouth.net/
Chatterbox (Web-Javas cript 及 Windows) http://www.clientside.co.uk/
Chatopus (PalmOS) http://www.chatopus.com/
Jabber Messenger (Windows) http://www.jabber.com/
Neos (Windows) http://www.neosmt.com/
TipicME (J2ME-PersonalJava) http://www.tipic.com/
TipicWeb (Java Applet) http://www.tipic.com/
TSIM (Windows) http://triplesoftware.nl/
支持Jabber的多協(xié)議客戶端軟件
開放源碼
Adium X (Mac OS X) http://www.adiumx.com/
Bitlbee (跨平臺) http://www.bitlbee.org/
Centericq (跨平臺) http://konst.org.ua/en/centericq/
Fire (Mac OS X) http://fire.sourceforge.net/
Gaim (跨平臺) http://gaim.sourceforge.net/
Kopete (Linux/Unix) http://kopete.kde.org/
Miranda IM (Windows) http://miranda-im.org/
Simple Instant Messenger (跨平臺) http://sim-icq.sourceforge.net/
免費軟件
Gizmo (VoIP) (跨平臺) http://www.gizmoproject.com/
商業(yè)軟件
Proteus (Mac OS X) http://www.defaultware.com/proteus/
Trillian Pro (Windows) (透過插件) http://www.ceruleanstudios.com/
iChat (只在 Mac OS X v10.4 Tiger 以上) http://www.apple.com/macosx/features/ichat/
Antepo OPN (Java, 商業(yè)軟件) http://www.antepo.com/?products.opnserver
Corporate Hardened Instant Messaging Engine (Java, GPL) http://www.codecobra.com/chime/ (尚未提供S2S支持)
ejabberd (跨平臺的, GPL) http://ejabberd.jabber.ru/
Jabber XCP (Linux/Solaris/Windows, 商業(yè)軟件) http://www.jabber.com/
jabberd (跨平臺的, GPL) http://jabberd.jabberstudio.org
jabberd2 (跨平臺的, GPL) http://jabberd.jabberstudio.org/2/
Jive Wildfire (Java, GPL) http://www.jivesoftware.org/wildfire/
Merak IM (Windows, 商業(yè)軟件) http://www.icewarp.com/products/instant_messaging/
Tigase (Java, GPL) https://tigase.dev.java.net/
xmppd.py (跨平臺的, GPL) http://sf.net/projects/xmpppy/
SoapBox Server (.NET,商業(yè)軟件) http://www.coversant.net/server
客戶端(kuusipuu)連接到一個Jabber服務(wù)器(amessage.de:5222/TCP),發(fā)送一條消息(主題和內(nèi)容均為“test 1449”)到另一個客戶端(tero),然后登出。
kuusipuu:
<?xml version="1.0"?>
<stream:stream xmlns:stream="http://etherx.jabber.org/streams"
xmlns="jabber:client" to="amessage.de">
amessage.de:
<stream:stream xmlns=&#39;&#39;&#39;&#39;jabber:client&#39;&#39;&#39;&#39;
xmlns:stream=&#39;&#39;&#39;&#39;http://etherx.jabber.org/streams&#39;&#39;&#39;&#39;
from=&#39;&#39;&#39;&#39;amessage.de&#39;&#39;&#39;&#39; id=&#39;&#39;&#39;&#39;1461777714&#39;&#39;&#39;&#39;>
kuusipuu:
<iq type="set" id="auth_2" to="amessage.de" >
<query xmlns="jabber:iq:auth">
<username>kuusipuu</username>
<password>mypassword</password>
<resource>Work</resource>
</query>
</iq>
amessage.de:
<iq from="amessage.de" id=&#39;&#39;&#39;&#39;auth_2&#39;&#39;&#39;&#39; type=&#39;&#39;&#39;&#39;result&#39;&#39;&#39;&#39;/>
kuusipuu:
<message to="tero@example.com" >
<subject>test 1449</subject>
<body>test 1449</body>
</message>
<presence type="unavailable" >
<status>Logged out</status>
</presence>
</stream:stream>
amessage.de:
</stream:stream>
即時通訊軟件比較