用Jabber實現自己的既時通訊系統(轉)

gugu99發表於2007-08-10
用Jabber實現自己的既時通訊系統(轉)[@more@]

  隨著計算機網路的普及,幾乎每個網路使用者都在使用著一種或者一種以上的IM(既時通訊系統),IM滿足了人們透過網路進行即時通訊的需要,IM出現很久了,並不是一個新的東西,但在各種新 技術的推動下,IM本身也在不斷髮展,人們不但也可以透過手機、PDA使用IM,而IM也開始支援語音、影片、手機簡訊、遊戲等功能。

  常見的IM軟體有很多,但我們國內用的比較多是騰訊QQ、MSN、ICQ了。但是這些IM的伺服器端和客戶端都是由一各自己的商業機構提供的,所以使用者要依賴他們來提供IM服務。

  那麼可不可以自己架設一套屬於自己的IM呢?

  Jabber正是這樣一個開放原始碼而且功能強大的IM系統。Jabber是1998年開發出來的,它的資訊採用XML格式,屬於opensource,您可以免費的得到和使用它,並且可以對其進行二次開發。

  Jabber有什麼和QQ、MSN、ICQ不一樣的功能呢?

  Jabber有一個QQ、MSN、ICQ等常見IM所不具備的功能,它可以做為一個代理來幫助Jabber的客戶在Jabber上同時使用其它的IM系統,也就是說你只要開啟jabber的客戶端就可以登入到象ICQ、MSN、yahoo.message上面,並且能和它們收發資訊。這樣你以後可以不用開啟幾種不同的IM客戶端,只要開啟Jabber的客戶端就行了,這樣是不是很方便呢。

  關於jabber更多的資訊,可以訪問jabber的網站,本文將重點講如何在Linux上安裝和配置Jabber服務,希望你可以藉助此文用Jabber實現自己的IM。

  下面就開始介紹如何安裝一個IM。這個IM將有聊天室功能、同時也支援ICQ、MSN、yahoo.message。

  安裝環境

  Jabber可以安裝在多種作業系統上面。筆者用的是RedHat7.3,當然其它的Linux也可以安裝Jabber的。另外如果你僅僅是想試試安裝的話,至少要兩臺聯網的電腦,否則的話,你需要要有一個真正的網路,Internet或者區域網都可以。如果是在internet上安裝,需要有自己的域名和IP,這樣就可以向Internet上的所有人提供Jabber服務了,就好象ICQ、MSN一樣的,當然你肯定沒有它們哪麼強負荷能力了:)。如果在區域網中安裝,那就只能在本地區域網使用了。

  相關軟體

  Jabber相關的軟體可以在jabber.org找到,或者透過google搜尋。最好下載最新的版本,因為經常會有新的功能加入。這裡用到以下軟體。

jabber-1.4.2.tar.gz        jabber伺服器本身

  JabberSetup.EXE          jabber的客戶端之一,執行在window上

  konverse-0.2-1_rh7.i386.rpm    jabber的客戶端之一,執行在Linux上

conference-0.4.tar.gz

  jud-0.4.tar.gz

  autojud.tar.gz

icqv7-t-0.3.0pre2.tar.gz

  libicq2000-0.3.1.tar.gz

  libsigc++-1.0.3-5.i386.rpm

  libsigc++-devel-1.0.3-5.i386.rpm

  msn-transport-stable.tar.gz

  yahoo-t-2.0.0-RC6.tar.gz

  安裝Jabber Server

  Jabber的伺服器端是用C寫的,你需要用root的許可權進行編譯,因為它可能要用到一些只有root才能使用的庫。

tar -xzpvf jabber-1.4.2.tar.gz -C /usr/local/

  cd /usr/local/jabber-1.4.2/

  ../configure

  make

  ln -s /usr/local/jabber-1.4.2 /usr/local/jabber

  Jabber Server的主要配置檔案是jabber.xml。它需要做一些設定,比如

  <host>localhost</host>:伺服器的主機名

  <welcome/>:登入jabber伺服器的歡迎資訊

  <update><jabberd:cmdline

  flag="h">localhost</jabberd:cmdline></update>:自動更新,這裡刪除一行

  為了安全,我們不以root的身份來執行jabber,而是建立一個名為jabber的使用者。

  #adduser jabber

  #chown jabber.jabber -R jabber-1.4.2/

  以jabber身份啟動Jabber Server

  su - jabber -c "/usr/local/jabber/jabberd/jabberd & "

  安裝Jabber Client

  Jabber有很多種Client,可以執行在各種平臺下。

  下載的Windows下的客戶端軟體,只要雙擊就開始安裝了,不需要額外做設定已經可以用了。

  在Linux平臺下可以用konverse,以RPM方式安裝即可。

  安裝好客戶端後,你可以試著透過它去自己的Jabber

  Server上註冊使用者。當然你得至少註冊兩個使用者,才能夠模擬聊天的情形。除非你喜歡自言自語:)

  安裝聊天室的支援

  這裡筆者把conference翻譯成聊天室,這樣好象會有且助於QQ使用者對比QQ的聊天室功能來理解。conference其實正是象QQ聊天室一樣的東西。你需要安裝conference才能實現此項功能。

tar -xzpvf conference-0.4.tar.gz -C /usr/local/jabber

  cd conference-0.4/

  make

  make完了之後,能看到conference-0.4/目錄中生成一個檔案conference.so.。這表示這次編譯已經成功了。接下來就是對jabber.xml進行配置,加入conference服務。

  conference分公用和私用兩種,在type屬性上指定。

  在<jsm>的<browse/>項中加入宣告一個本地的conference,大約是第220行左右。

  定義一個私用的conference服務

  <conference type="private" jid="private.localhost" name="Private Conferencing"/>

  在<browse>之外定義服務

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-940121/,如需轉載,請註明出處,否則將追究法律責任。

相關文章