用Jabber實現自己的既時通訊系統(轉)
隨著計算機網路的普及,幾乎每個網路使用者都在使用著一種或者一種以上的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.gzicqv7-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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 採用spark和openfire實現即時通訊系統Spark
- DPSK通訊系統的FPGA實現FPGA
- Spring Boot 開發整合 WebSocket,實現私有即時通訊系統Spring BootWeb
- gochat - 純go實現的im即時通訊系統(支援水平擴充套件)Go套件
- Flume 實現自己的實時日誌(2)
- 即時通訊系統中實現全域性系統通知,並與Web後臺整合【附C#開源即時通訊系統(支援廣域網)——QQ高仿版IM最新原始碼】WebC#原始碼
- DAPP即時通訊系統開發(詳細案例)丨DAPP即時通訊系統開發(方案規則)/原始碼APP原始碼
- 即時通訊系統中實現聊天訊息加密,讓通訊更安全【低調贈送:C#開源即時通訊系統(支援廣域網)——GGTalk4.5 最新原始碼】加密C#原始碼
- 即時通訊系統是企業提高辦公效率的利器
- 基於XMPP的即時通訊系統的建立(二)— XMPP詳解
- 國產化即時通訊系統開發 -- 使用Avalonia實現GGTalk的UI介面(Linux、Ubuntu、UOS、中標麒麟)UILinuxUbuntu
- 數字通訊系統
- 即時通訊系統為什麼選擇GaussDB(for Redis)?Redis
- 北斗GPS衛星同步時鐘(NTP時鐘伺服器)在通訊系統中應用伺服器
- DAPP區塊鏈即時通訊系統開發(功能詳情)丨DAPP即時通訊系統開發(原始碼專案)APP區塊鏈原始碼
- 為什麼實時分析既需要NoSQL的靈活性,又需要SQL系統的嚴格模式?SQL模式
- 基於XMPP的即時通訊系統的建立(四)— 協議詳解協議
- 基於XMPP的即時通訊系統的建立(一)— XMPP基礎概念
- GGTalk即時通訊系統(支援廣域網)終於有移動端了!(技術原理、實現、原始碼)原始碼
- 實現自己的promisePromise
- 企業內部即時通訊系統專案總結
- 用VB設計自己的E-mail系統 (轉)AI
- 實時通訊系列目錄篇之SignalR詳解SignalR
- 基於XMPP的即時通訊系統的建立(三)— 程式設計概覽程式設計
- SIMULIA的飛機通訊系統設計
- 數字通訊系統中的“頻寬”
- 實現自己的http serverHTTPServer
- VMware 實現自己設計的最小作業系統作業系統
- 國外低軌衛星通訊系統發展現狀
- 一個海量線上使用者即時通訊系統(IM)的完整設計
- 如何用一天時間實現自己的RPC框架RPC框架
- 自己實現AJAX
- 儲存系統實現-構建自己的儲存系統(一)
- 自己用 Netty 實現一個簡單的 RPCNettyRPC
- dbms_job包的應用:在Oracle中實現定時操作(轉)Oracle
- OFDM通訊系統的MATLAB模擬(1)Matlab
- OFDM通訊系統的MATLAB模擬(2)Matlab
- 在Python中實現你自己的推薦系統Python