Jabber

Linux即時通訊服務伺服器

Jabber是著名的Linux即時通訊服務伺服器,它是一個自由開源軟體,能讓用戶自己架即時通訊伺服器,可以在Internet上應用,也可以在區域網中應用。Jabber最有優勢的就是其通信協議,可以和多種即時通訊對接。

介紹


jabber
jabber
Jabber有第三方插件,能讓Jabber用戶和MSN、YahooMessager、ICQ等IM用戶相互通訊。因為Google遵從Jabber協議,並且Google已經將Gtalk的伺服器開放給了其它的Jabber伺服器。所以PSI、Giam等Jabber客戶端軟體支持GTalk用戶登陸。XMPP(可擴展消息處理現場協議)是基於可擴展標記語言(標準通用標記語言下的一個子集、外語縮寫:XML)的協議,它用於即時消息(IM)以及在線現場探測。它在促進伺服器之間的准即時操作。這個協議可能最終允許網際網路用戶向網際網路上的其他任何人發送即時消息,即使其操作系統和瀏覽器不同。XMPP的技術來自於Jabber,其實它是Jabber的核心協定,所以XMPP有時被誤稱為Jabber協議。Jabber是一個基於XMPP協議的IM應用,除Jabber之外,XMPP還支持很多應用。
在網路中,jabber是任何一種不正確地處理電信號,通常影響到網路其他部分的設備。在乙太網中,設備爭用線路,總是試著發送一個信號,然後如果有其他設備也在同時進行了嘗試就重試著發送信號。jabber可以看作是一個不斷地發送信號,最後讓網路處於中斷狀態的設備。jabber通常是一塊不好的網卡(NIC)導致的結果。有時,它也可能由於外界的電干擾所導致。
IEEEXMPP工作組(一個工程師和程序員聯盟)正在改編XMPP以用作網際網路工程任務組(IETF)技術。XMPP最終有望使用鑒定、訪問控制、高級隱私、逐跳加密、端端加密以及與其它協議的相容等應用來支持IM。

客戶端

Google官方公布的Jabbe/XMPP客戶端有:
Jabber.org列出了更為詳盡的客戶端:JabberClients
Google已經將Gtalk的開發注意力轉移到了Hangout上。這點從Google Developer API知識庫中可以看到,Google已經將Gtalk轉移到了Hangout上來。或者說Hangout是Gtlak的現時版本也可以。固本文中所有出現的Gtalk相關的辭彙都應替換為Hangout。
Hangout同樣支持XMPP協議,具體信息可以查看Google Developer API知識庫。

使用方法

Goolge官方列表中比較好用的是PSI(使用方法見:PSI,導入MSN、Yahoo、ICQ到Gtalk)。
不在官方列表中的一個軟體是Pandion(下載),經測試,GTalk登陸速度要快於PSI,界面美觀,使用方法:
①運行軟體,先點擊登陸窗口上的"Connection Settings"→在"Secure
Communication"欄中點選"Require SSL encryption",確定后返回登陸窗口,輸入完整的GT賬號登陸。
②導入其它通訊協議:登陸后依次點擊主窗口上的工具→網路橋連→其他橋接→輸入一個伺服器,如:Jabber. c n→
點擊協議列表中相應的伺服器,比如MSN→下一步→輸入MSN帳號、密碼和昵稱→
完成。伺服器會自動讀取你現有的好友列表,並導入到Gtalk中。取消協議只要點擊相應的伺服器,點擊"停止使用橋接"。
要感受到Jabber的妙處,一個穩定、多協議支持的伺服器是必須的。除了前面提到的Jabber.cn,更多的伺服器可以去Jabber
Network選擇,它詳細列出了每個伺服器支持的協議類型,非常直觀。
用了很久的Jabber Client,令人感到興奮的是終於有QQ的Jabber伺服器了。加入該服務后,QQ好友並不會顯示在主窗口聯繫人列表中。詢問管理員后得到的回復是:"由於害怕騰訊訴訟,我們沒敢做成雙向,現在僅僅是單向,你的好友列表不會被刷新出來。但是你的QQ好友和你說話時,會在我們這邊顯示出來,你也可以回復,很快wap版本將會推出。"

擴展應用

GTalk還設有群組功能,但通過一個消息轉發工具,可以實現聊天室功能(打造你自己的Gtalk聊天室)。如果還想讓非GT用戶加入GTalk群聊,就可以通過Jabber客戶端網路橋接的方式實現。例:註冊一個MSN賬號作為公共賬號,並將其橋接到GTalk群聊賬號中,再讓MSN用戶添加該公共賬號就可以讓他們加入GT聊天室。其它協議亦然。

許可證


Jabber許可證的全稱是Jabber Open Source License,由美國Jabber.Com,Inc.公司提供。Jabber許可證在源代碼的複製、發行規定方面基本上和其他許可證沒有什麼特別,但有一些細節規定值得借鑒:
◆可以將通過該許可證獲得的源代碼及修改過的源代碼與其他類型的不受該許可證約束的代碼結合,以新產品的形式發布,只要其中經該許可證獲得的源代碼及修改過的源代碼能以與該許可證的要求類似的、符合OSI認證的其他開源軟體許可證的方式發布。
◆明確了需將源代碼置於公眾可以得到的狀態的時間至少應為12個月。
◆第三方對法定權利的聲明。假如使用者發現通過本許可證獲得的源代碼及應用程序介面中有一方擁有的知識產權,應單獨在源碼的發布時冠以“LEGAL”為抬頭的聲明,寫明知識產權權利要求的細節,提請源代碼的接受者知道自己獲得了哪些知識產權的授權,讓源碼的接受者知道如何與知識產權權利人聯繫。
◆細化了該許可證終止的情形,包括不按該許可證的要求發布和使用源代碼、發生專利侵權訴訟。

應用


國人已經開發出jabber的應用:JeCat-Jabber(簡稱:JJ)是一款完全由PHP開發的即時通訊軟體。JJ採用Gtk2圖像界面庫來實現用戶界面。顧名思義JJ使用Jabber協議(XMPP),因此可以和包括GTalk在內的其它任何XMPP即時通訊軟體聊天。
JJ的特點:
>跨平台,JJ在Linux環境下開發,在Windows平台上也一樣可以正常使用。
>實用標準的XMPP協議,能夠與其它的Jabber軟體互相通訊,例如Google GTalk、Pidgin、PSI、Spark、Pandion,以及其它的Jabber網頁聊天窗口
>可更換界麵皮膚,皮膚樣式文件採用類似CSS的語法,便於美工獨立工作。
>純PHP實現,從通訊協議到圖形界面,全部都由PHP開發,如果你正好是一名PHP程序員,你可以駕輕就熟地在JJ之上進行二次開發。
>可整合到你的網站中。JJ的完善會使JJ更容易地為你的網站所有,讓你的網站也可以有像淘寶旺旺那樣的專用聊天工具。

優點


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

運作方式


Jabber網路是基於伺服器的(即客戶端之間彼此不直接交談),但是也是分散式的。不像AOL即時通或MSN Messenger等服務,Jabber沒有中央官方伺服器。Jabber.org的公眾伺服器上有大量的用戶,所以有些人誤解了,以為它是官方伺服器,不過事實上任何人都可以在自己的網域上運行Jabber伺服器。
Jabber識別符(JID)是用戶登入時所使用的帳號,看起來通常像一個電子郵件地址,如[email protected];前半部分為用戶名,後半部分為Jabber伺服器域名,兩個欄位以@符號區隔。
假設朱麗葉([email protected])想和羅密歐([email protected])通話,他們兩人的帳號分別在Capulet.com及Montague.net的伺服器上。當朱麗葉輸入訊息並按下傳送鈕之後,一連串的事件就發生了:
1朱麗葉的Jabber客戶端將她的訊息傳送到Capulet.comJabber伺服器。
2Capulet.comJabber伺服器開啟與Montague.netJabber伺服器的連接。
3Montague.netJabber伺服器將訊息寄送給羅密歐。如果他目前不在線上,那麼儲存訊息以待稍後寄送。
Juliet<---->Capulet.com<---->Montague.net<---->Romeo
羅密歐與朱麗葉兩人的Jabber服務是由兩家不同的業者所提供的,而他們彼此傳訊時,不須擁有對方伺服器的帳號,也不須成為對方業者的會員。

其他協定


Jabber系統有一個獨特的網關(也稱作傳送器)功能,該功能允許用戶可以使用其他協議,如AOL、ICQ、MSN、Yahoo、簡訊或者電子郵件。和Trillian或Gaim等其他多協議客戶端不同的是,Jabber在伺服器級別提供這個功能,任何Jabber用戶都可以註冊一個這樣的網關來登錄其他網路。也就是說任何支持Jabber協議的客戶端都可以訪問一個存在的網關,來與其他網路上的用戶聯繫。

軟體


1.Gtalk
2.KIK
4.人人桌面
5.新浪微博私信

弊端


語言複雜度高,分散式相關功能使用了很冷門的Erlang語言,部署和維護成本較高。