亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

java即時通信解決方案openfire+spark完整安裝指

系統 1792 0

本文介紹基于java的即時通信解決方案openfire3.6.4+spark2.5.8的完整的安裝說明,并介紹了使用smack的java類庫如何與im用戶交互的例子,這樣使得業務系統的消息可以通過smack編程將消息發送給spark客戶端。spark2.5.8除了聊天之外還支持多人視頻,語音,文件傳輸,截圖,觀看遠程桌面,msn互聯互通等功能。因

本文圖片太多,需要看圖片的請下載資源或者訪問 http://code.google.com/p/openjweb/downloads/list ,找到java_im開頭的文件下載。 ?

?

?

?

?

?

?

Openfire+Spark 安裝手冊

?

?

?

?

?

?

?

王保政

QQ:29803446

Msn:baozhengw999@hotmail.com

?

關鍵字 : 快速開發平臺 openjweb 增刪改查 即時通信

?

2009-8-29

?

?

?

?

?

?

?

?

?

?

?

?

?

?

第一章 ?????? Java 領域的 IM 解決方案 .... 2

第二章 安裝 openfire3.6.4 . 3

2.1 配置機器的域名 ... 3

2.2 安裝 openfire . 3

2.2.1 安裝 ... 3

2.2.2 運行數據庫腳本 ... 4

2.2.3 數據庫驅動 jar ... 6

2.2.4 openfire 初始化配置 ... 6

2.3 設置用戶 ... 12

第三章 ??? 安裝 spark 客戶端 .... 13

第四章 ??? 配置 msn 網關 .... 15

4.1 服務端配置 msn 網關 ... 15

第五章 ?????? Red5 視頻配置 .... 18

5.1 部署 red5.war . 18

5.2 spark 客戶端配置視頻插件 ... 19

第六章 ??? 使用 smack 開發即時通信功能 .... 22

?

?


?

第一章 ?????? Java 領域的 IM 解決方案

Java 領域的即時通信的解決方案可以考慮 openfire+spark+smack 。當然也有其他的選擇。

Openfire 是基于 Jabber 協議 (XMPP) 實現的即時通信服務器端版本,目前建議使用 3.6.4 版本,這個版本是當前最新的版本,而且網上可以找到下載的源代碼。

即時通信客戶端可使用 spark2.5.8, 這個版本是目前最新的 release 版本,經過測試發現上一版本在視頻支持 ,msn 網關支持上可能有問題,所以選擇 openfire3.6.4+spark2.5.8 是最合適的選擇。

Smack 是即時通信客戶端編程庫,目前我已測通通過 jsp 使用 smack API openfire 注冊用戶發送消息,并且可以通過監聽器獲得此用戶的應答消息。

通過 smack msn 用戶和 QQ 用戶 ,gtalk 用戶發送消息應該也可以實現,關于向 gtalk 用戶發送消息的例子較多。這個留待以后研究。至少目前可以通過程序向 spark 發消息了。對于局域網內部應用足以解決系統與用戶交互的問題,甚至可以做自動應答機器人。

Spark 支持聊天,語音,視頻,會議,文件收發,截屏,連接 msn 等功能。

?

第二章 安裝 openfire3.6.4

2.1 配置機器的域名

使用 openfire 需要配置機器的域名。如果局域網內沒有安裝域服務器,則需要手工為機器配置域名,打開 C:/WINDOWS/system32/drivers/etc/hosts 文件,增加一新行:

127.0.0.1 ???????????????????????? bzwang.tzsoft.com ? (用戶根據自己的需要可配置稱別的名字,但最好符合帶 . 的域名格式)

其他機器使用域名訪問 openfire, 也需要在 C:/WINDOWS/system32/drivers/etc/hosts 中指定 bzwang.tzsoft.com 對應的 ip 地址,假設安裝 openfire 的主機 IP 192.168.1.10, hosts 文件中應增加一新行 :

192.168.1.10 bzwang.tzsoft.com

通過這種方式指定主機域名,建議安裝 openfire 的機器配置靜態 ip 地址以免 ip 發生改變。

?

2.2 安裝 openfire

2.2.1 安裝

安裝程序為 openfire_3_6_4.exe, 運行后,語言選擇簡體中文,見下圖:

?

?

后續按照提示安裝,最后出現下面的界面:

?

?

?

這時先不要運行 openfire, 所以不要勾選上面頁面的復選框,然后點完成,如果勾選的話,在新出現的窗口中點“ stop ”停止 openfire 后續的運行,然會點 ”quit” 退出,因為下面要配置 openfire 使用的數據庫,需要手工將數據庫驅動放到 openfire 的某個目錄下,否則 openfire 不識別數據庫驅動的包名。

2.2.2 運行數據庫腳本

?

數據庫運行腳本在 C:/Program Files/Openfire/resources/database 目錄下,如果用戶安裝選擇的不是 C:/Program Files 目錄,可以到安裝 openfire 目錄下找到 database 目錄,打開此目錄后可看到有多種版本的數據庫腳本,假定我們現在要把 openfire 的數據庫安裝在 sqlserver2005 中,則使用 openfire_sqlserver.sql 腳本,假如已經裝好了 2005 數據庫,可在 Management Studio 中執行數據庫腳本,見下圖:

?

?

?

執行后,打開數據庫,可看到下面創建的數據庫表:

?

?

2.2.3 數據庫驅動 jar

如果使用 sqlserver2005, 則將 sqlserver2005 驅動 jar sqljdbc.jar 復制到 C:/Program Files/Openfire/lib 下,使用 openjweb 快速開發平臺的用戶可直接從 D:/project/apache-tomcat-5.5.27/common/lib 找到此 jar 包復制過去,另外此目錄還有 mysql mysql-connector-java-3.1.12-bin.jar oracle ojdbc14.jar ,如果用戶不選擇 sqlserver 則復制對應數據庫的驅動 jar 包。

2.2.4 openfire 初始化配置

從開始菜單中找到 openfire 并運行,下面是運行界面:

?

?

?

”Launch Admin”, 出現下面的頁面,頁面連接為 http://127.0.0.1:9090/setup/index.jsp

?

?

?

語種選擇中文(簡體),點 ”Continue”: (下面的頁面如果出現英文,請刷新一下頁面或者重新點 Launch Admin

?

這個頁面的 Domain 默認為機器名,請改為一開始設置的域名,例如 bzwang.tzsoft.com, 就是將圖中的 Domain 中的文字換成 bzwang.tzsoft.com 后,點 Continue( 繼續 ):

?

?

這個頁面中第一個選項,即標準數據庫連接,不要選擇嵌入的數據庫 ( Embedded Database, 嵌入的數據庫是 hsqldb 數據庫,生產環境不要選擇此選項 ), 然后點 繼續 ”:

?

?

這個頁面是配置是否使用 LDAP, 我們現在不配置 LDAP, 所以選擇 Default 默認即可,點繼續 :

?

?

上圖是 sqlserver2005 的配置, jdbc 驅動類為 : com.microsoft.sqlserver.jdbc.SQLServerDriver

數據庫 URL 為:

jdbc:sqlserver://192.168.1.222:2324;DatabaseName=dms

數據庫名和用戶名及口令請根據實際環境配置。

?

配置完成后,點 繼續 ”:

如果點繼續出現錯誤提示頁面,請檢查

(1) ?????? 數據庫表是否按前面的步驟已在數據庫中創建

(2) ?????? 是否已將對應的數據庫 jar 保復制到 openfire lib 目錄

(3) ?????? 檢查數據庫連接參數,端口,數據庫名等屬性,可使用 dos 命令行檢查數據庫端口是否有效,例如 telnet 192.168.1.222 2324

下面是配置 LDAP 的頁面,選擇 初始設置 ”( 默認選項 ) 即可。

?

?

點“繼續”:

下面是配置超級管理員的頁面:

?

?

?

輸入一個郵箱和口令,例如 123456

?

設置好后點“繼續”:

?

?

?

這個時候不要點“登錄到管理控制臺” , 登錄肯定失敗,需要切換到這個頁面:

?

?

”stop” ,然后點“ start , 等重啟動成功后點 ”Launch Admin”, 進入登錄頁面:

?

?

?

使用 admin 用戶名和設置的口令 123456 登錄,下面是登錄成功的頁面,恭喜! sqlserver2005 上安裝 openfire 成功!

?

?

我們打開 ofUser 數據庫表可以看到 admin 用戶信息: ( 下面的口令不是用 md5 加密的 )

?

?

2.3 設置用戶

?

在登錄成功頁面點“用戶 / 組”標簽維護用戶信息,可在這里增加新的用戶,也可以建組,下面是新建的幾個組:

?

?

?

下面新建幾個測試用戶,分別是 abao/abao,zhangyu/zhangyu,suqi/suqi,liu/liu

?

?

說明:當安裝了 spark 客戶端后,用戶可直接在客戶端注冊帳號。

?

第三章 ?? 安裝 spark 客戶端

?

安裝程序為 spark_2_5_8.exe ,安裝過程全部默認即可。

下面是登錄界面:

?

?

登錄時可使用 openfire 中創建的帳號,也可以點 (A) 帳戶自己注冊新的帳號,服務器需設置為 openfire 的域名地址即上面安裝的 bzwang.tzsoft.com, 下面是登錄成功界面:

?

?

?

關于 spark 客戶端的具體功能就不介紹了,下面介紹 openfire 配置 msn 網關及 spark 如何連接 msn ,以及 red5 視頻的配置方式。

第四章 ?? 配置 msn 網關

4.1 服務端配置 msn 網關

?

gateway.jar 插件包 ( 可網上下載 ) 復制到 openfire plugin 目錄下,如 :

C:/Program Files/Openfire/plugins ,如果 openfire 安裝到別的目錄請找到對應的目錄,把 gateway.jar 復制過去。停止 openfire, 重新啟動并登錄后,見下面的頁面,多出了一個 gateways 的標簽頁:

?

?

Gateways, 找到 MSN Messagers, 勾選,然后點“選項”,見下圖:

?

?

以上默認的配置不用修改,點“測試”,顯示:

?

?

點“測試連接”,顯示測試成功。(右側將顯示綠色背景的文字提示測試成功)

?

4.2 spark 客戶端設置 msn 帳號:

?

啟動 spark, 登錄后 ,spark 窗口的右上多出一個灰色的蝴蝶,見下圖:

?

?

點這個蝴蝶,然后選擇“輸入登入資訊”,顯示下面的窗口:

?

?

在這里輸入 msn 的用戶和口令,然后保存,稍后片刻, spark 將從 msn 上獲取用戶列表,最后顯示下面的 msn 好友列表:

?

?

?

這時可以選擇一個在線用戶聊天了, spark 還支持文件傳輸,截屏,語音,視頻等。

?

第五章 ?? Red5 視頻配置

5.1 部署 red5.war

red5.war 復制到 C:/Program Files/Openfire/plugins ,如果 openfire 是在運行狀態,一會會在這個目錄下自動部署 red5.war( 在此目錄下自動生成 red5 目錄 ) 。安裝成功后, openfire 的管理頁面會多出一個 red5 標簽,見下圖:

?

?

服務端不需要做任何改動。

5.2 spark 客戶端配置視頻插件

上一步驟部署了 red5 后,需要停止 openfire 并重新啟動,啟動完成后,訪問 http://bzwang.tzsoft.com:7070/red5 ,顯示一個 red5 html 首頁,下拉到頁面最下面,找到 spark plugin, ”here”, 見下圖:

?

?

?

here 會下載 red5-plugin.jar, 直接保存在 C:/Program Files/Spark/plugins 目錄下,重新啟動 spark

spark 中右鍵點一個人,會出現幾個菜單:

?

?

?

其中 View Destop Screen Publish Desktop Screen 是相關聯的 , 見下圖:

?

?

?

如果 A 用戶用 Publish Desktop Screen 發布了自己的桌面, B 用戶選擇 A 用戶,右鍵選擇上一個圖中的 View Desktop Screen, B 用戶可看到 A 用戶的計算機桌面。在 http://bzwang.tzsoft.com:7070/red5 頁面上有一個功能和這個類似,見下圖:

?

?

?

To publish 是發布自己的桌面, To Viewer 是別人觀看自己發布的桌面,多人發布是什么效果沒有具體測試。可以自己發布然后觀看自己的桌面(效果有點像兩個鏡子對照,會出現層層窗口嵌套的現象),下面是自己發布自己的桌面并觀看自己的桌面的效果:

?

?

?

當選擇一個人,右鍵選擇 Add/Remove Video Roster 后,可進行 視頻聊天,可以加多個人進行視頻,每選擇一個熱人,然后點 Add/Remove Video Roster ,就可以將這個人加入到視頻中或者從視頻中移除,下面是視頻頁面(我沒裝攝像頭),可以看出一個頁面中可以顯示多人視頻,如果其他人也裝了 spark, 估計也能看到多人視頻的效果 ( 猜測,沒有測試 ) ,見下圖:

?

?

?

第六章 ?? 使用 smack 開發即時通信功能

?

可以使用 smack 開源產品開發與即時通信用戶交互的功能,這樣我們可以使用系統來模擬一個 openfire 的用戶來向其他用戶發送消息,因而可以使應用系統產生的業務消息實時傳遞給即時通信用戶,例如系統向某用戶發送“有新的請假單需要您審批”,如果用戶開啟了 spark 客戶端,則 spark 客戶端會實時接收此消息。

Smack 可從網上下載,目前最新版本為 smack_3_1_0.zip ,將此文件里四個 smack 開頭的 jar 包放到自己的 WEB 應用的 WEB-INF/lib 目錄,使用下面的 jsp 文件進行測試 :

下面是測試向 spark 用戶 suqi 發送消息的頁面代碼:

?

<%@ page contentType="text/html;charset=UTF-8"%>

?

<%@ page import="org.jivesoftware.smack.*"%>

<%@ page import="org.jivesoftware.smack.packet.*"%>

?

<%

?

?? // 以下可以通過程序向 spark 帳號發信息,但沒有測通想 msn 帳號發信息

?? XMPPConnection connection = new XMPPConnection("bzwang.tzsoft.com"); //openfire 服務器的主機域名

?? // ConnectionConfiguration connectionConfig = new ConnectionConfiguration( "messenger.hotmail.com",1863,"messenger.hotmail.com");

?? // ? XMPPConnection connection = new XMPPConnection(connectionConfig);

?? connection.connect();// 先連接服務器

?? try

?? {

?????? connection.login("abao", "abao");// 使用 openfire 的注冊用戶登錄 openfire 服務器

??? ?? System.out.println(" 登錄成功 !");

??? ?? //createChat 的第一個參數一定要帶域名 (suqi@bzwang.tzsoft.com) ,否則會話失敗

??? ?? Chat chat = connection.getChatManager().createChat("suqi@bzwang.tzsoft.com", new MessageListener()

??? ?? //Chat chat = connection.getChatManager().createChat("baozhengw9999%hotmail.com@msn.bzwang.cmissoft.com", new MessageListener()

??? ?? {

??? ?????? public void processMessage(Chat chat, Message message)

?????? ?? {

?????? ?????? // 如果不用 connection.disconnect() 斷開連接,這里可以監聽回復信息

?????????? ?? System.out.println("Received message: " + message.getBody());

?????? ??? }

??? ??? }

?????? );

??????

?????? System.out.println(" 發送消息 ....");

??????

?????? chat.sendMessage(" 請問你收到我的消息了嗎 ?");//

?????? /* Message message = new Message("baozhengw9999%hotmail.com@msn.bzwang.cmissoft.com");

?????? ?? message.setBody(" 你好!我是個聊天機器人! ");

?????? ?? connection.sendPacket(message);

??? ??? */

??? ??? System.out.println(" 發送完畢 ...");

?????? connection.disconnect();

?????? } catch (Exception ex) {

?????????? System.out.println("login error");

?????? }

?

%>

?

?

發送成功后,如果 suqi 用戶打開了 spark, spark 會閃爍提示有新消息,打開 spark, 聊天窗口顯示系統用 abao 用戶發送的消息,見下圖:

?

?

?

這樣實現了業務系統和即時通信的無縫整合,以后應該還可以實現通過 smack 編程使內網的 openfire 注冊用戶向自己的 msn 好友或 QQ 好友發送消息以及接收消息。

?

?

?

java即時通信解決方案openfire+spark完整安裝指南


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠 | 在线播放 亚洲 | cao美女视频网站在线观看 | 青青青激情视频在线最新 | 久久精品66 | 日韩精品久久不卡中文字幕 | 久久天天躁狠狠躁夜夜不卡 | h网站国产 | 欧美成成人免费 | 色视频网站在线观看 | 四虎影视永久免费视频观看 | 欧美又粗又硬 | 91精品国产麻豆国产自产在线 | 免费精品视频 | 天天操操操 | 日韩 欧美 亚洲 国产 | 美女性色 | 手机在线精品视频每日更新 | 国产精品亚洲精品 | 中文字幕免费观看视频 | 很狠操| 日本亚洲欧洲高清有码在线播放 | 欧美亚洲日本国产 | 成人欧美一级毛片免费观看 | 一级毛片特级毛片免费的 | 亚洲精品成人在线 | 日韩二三区 | 一级片免费在线 | 亚洲日本视频在线 | 香蕉视频一区二区三区 | 日韩精品一区二区三区乱码 | 米奇影视7777 | 中文字幕一区视频一线 | 日本伦理中文字幕 | 一本到亚洲网 | 在线观看日韩 | 一级毛片看一个 | 久久免费视频在线 | 99青青| 久久www免费人成高清 | 午夜不卡影院 |