用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DPSK通訊系統的FPGA實現FPGA
- 為自己搭建一個分散式 IM(即時通訊) 系統分散式
- Oracle實時程式通訊(轉)Oracle
- 行業分析| OA系統中的實時通訊行業
- 8┃音視訊直播系統之 WebRTC 信令系統實現以及通訊核心並實現視訊通話Web
- Spring Boot 開發整合 WebSocket,實現私有即時通訊系統Spring BootWeb
- MQ實現兩個應用系統之間的通訊-----實際操作(二)MQ
- 通訊錄管理系統(C++實現)C++
- gochat - 純go實現的im即時通訊系統(支援水平擴充套件)Go套件
- 俄羅斯黑客專用通訊工具 Jabber,隱私性夠強嗎?黑客
- eddChat即時通訊(聊天系統)
- Uniapp 使用 GoEasy 實現 websocket 實時通訊APPGoWeb
- 基於 socket.io 快速實現一個實時通訊應用
- 在Spring Boot中實現WebSocket實時通訊Spring BootWeb
- 教你如何用python實現學生通訊錄管理系統Python
- Cisco Jabber 15.0 釋出下載 - 面向企業的多合一通訊工具
- 用訊息佇列和socket實現聊天系統佇列
- 為什麼實時分析既需要NoSQL的靈活性,又需要SQL系統的嚴格模式?SQL模式
- 樂訊通雲通訊:物聯網路卡在監控系統的應用
- Flume 實現自己的實時日誌(2)
- 「實戰」搭建完整的IM(即時通訊)應用(2)
- 「實戰」搭建完整的IM(即時通訊)應用(1)
- 實現在安卓平臺下的即時通訊安卓
- 作業系統實驗6之訊號量的實現與應用作業系統
- DAPP即時通訊系統開發(詳細案例)丨DAPP即時通訊系統開發(方案規則)/原始碼APP原始碼
- QT:用QWebSocket實現webchannel,實現C++與HTML通訊QTWebC++HTML
- Python中使用共享變數+訊號量實現程序間的實時通訊Python變數
- laravel整合workerman實現websocket多端及時通訊LaravelWeb
- flutter 呼叫環信sdk 實現即時通訊Flutter
- 捷視飛通視訊通訊系統實現菸草行業打假打私視覺化指揮行業視覺化
- 應用於實時視訊通訊的深度學習演算法深度學習演算法
- C語言實現通訊錄管理系統(結構體、列舉、聯合體應用)C語言結構體
- 【workerman】uniapp+thinkPHP5使用GatewayWorker實現實時通訊APPPHPGateway
- 什麼時候採用socket通訊,什麼時候採用http通訊HTTP
- 探索型別系統的底層 - 自己實現一個 TypeScript型別TypeScript
- 網路通訊2:TCP通訊實現TCP
- 國產化即時通訊系統開發 -- 使用Avalonia實現GGTalk的UI介面(Linux、Ubuntu、UOS、中標麒麟)UILinuxUbuntu
- DAPP區塊鏈即時通訊系統開發(功能詳情)丨DAPP即時通訊系統開發(原始碼專案)APP區塊鏈原始碼
- 通過Consul Raft庫打造自己的分散式系統Raft分散式