openfire安装配置完全教程
Java领域的IM解决方案
Java领域的即时通信的解决方案可以考虑openfire+spark+smack。
Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端,最新版本是3.8.1
可以到http://www.igniterealtime.org/downloads/index.jsp下载(分为windows和linux版本)
可以到http://www.igniterealtime.org/downloads/source.jsp下载源码,方便二次开发插件。
Spark是即时通信客户端。同样在上述地址下载,最新版本是2.6.3
Spark支持聊天,会议,文件收发,截屏,连接msn等功能。
如果是想支持 语音,视频,则必须
不能安装 Online版本,必须安装Spark完整版本。
下载Openfire3.6.4版本及red5插件
Smack是即时通信客户端编程库,目前我已测通jsp使用smack的API向openfire注册用户发送消息,并且可以通过监听器获得此用户的应答消息。
通过Smack向msn用户和QQ用户,gtalk用户发送消息应该也可以实现,关于向gtalk用户发送消息的例子较多。
第二章 安装openfire
此处以windows版本(ZIP)版本进行演示。
将ZIP版本解压后,将”openfire”文件夹拷贝到“D:\xtomchat”目录。
然后打开“D:\XtomChat\openfire\bin\openfire.exe”,启动后,点击“langch admin”,根据提示进行安装。
安装前,首先在本地MYSQL中新建xtom_chat数据库(utf8编码)。
然后安装过程中手动选择MYSQL,数据库URL串填写:
jdbc:mysql://192.168.1.146:3306/xtom_chat?rewriteBatchedStatements=true
安装过程中域名默认为本地计算机名称,此值不好用,可更改为IP地址或真实公网域名。
如果无法登录管理后台:则在ofuser数据表中,更换encryptedPassword字段的值为“36361c6a3f353bf245021f896fb138fe02c0b7612e9fcd1f”,则
用户名为admin,密码为”123456”。
安装spark客户端
安装程序为spark_2_5_8.exe,安装过程全部默认即可。
下面是登录界面:
登录时可使用openfire中创建的帐号,也可以点(A)帐户注册新帐号,服务器需设置为openfire的域名地址即上面安装的192.168.1.116,下面是登录成功界面:
关于spark客户端的具体功能就不介绍了,下面介绍openfire配置msn网关及spark如何连接msn,以及red5视频的配置方式。
======================WHB以下章节尚未进行测试=======================
配置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视频配置
redfire插件下载地址: http://code.google.com/p/redfire/downloads/list 搜索框里输入red5,或者直接打开: http://code.google.com/p/redfire/downloads/detail?name=red5.war&can=2&q= |
|
解压后将red5.war放到openfire的plugins下; 重启openfire 通过访问:http://127.0.0.1:9090/red5 下载redfire的spark插件 |
|
点”here”会下载red5-plugin.jar,直接保存在Spark\plugins目录下,重新启动spark。
将red5.war复制到Openfire\plugins,如果openfire是在运行状态,一会会在这个目录下自动部署red5.war(在此目录下自动生成red5目录)。安装成功后,openfire的管理页面会多出一个red5标签,服务端不需要做任何改动。
上一步骤部署了red5后,需要停止openfire并重新启动,启动完成后,访问http://127.0.0.1:7070/red5/ ,显示一个red5的html首页,下拉到页面最下面,找到spark plugin
点”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://wpy.com:7070/red5页面上有一个功能和这个类似,To publish是发布自己的桌面,To Viewer是别人观看自己发布的桌面,多人发布是什么效果没有具体测试。可以自己发布然后观看自己的桌面(效果有点像两个镜子对照,会出现层层窗口嵌套的现象),当选择一个人,右键选择Add/Remove Video Roster后,可进行 视频聊天,可以加多个人进行视频,每选择一个热人,然后点Add/Remove Video Roster,就可以将这个人加入到视频中或者从视频中移除,下面是视频页面(我没装摄像头),可以看出一个页面中可以显示多人视频,如果其他人也装了spark,估计也能看到多人视频的效果(猜测,没有测试),
搞了好几天才把这东西搞明白。今天终于搞定了。其中的关键就是SparkWeb依赖于Red5。但是在http://www.igniterealtime.org/downloads/index.jsp的下载页面又找不到Red5的下载。包括openfire的插件下载页面http://www.igniterealtime.org/projects/openfire/plugins.jsp上也找不到Red5的下载。估计需要到red5的官网上下载,但是我没有去下载。还是在igniterealtime的网站上找到了for openfire的red5插件。下载地址http://www.igniterealtime.org/projects/openfire/plugins-beta.jsp。下载那个red5.war。之后的事情就简单了。
将red5.war放到openfire的plugins目录下,然后启动openfire,它会自动解压red5.war。解压完成后能看到red5/sparkweb目录,以及一些其他的目录。然后还需要配置才能使用。进入openfire的管理控制台,即启动openfire后点击Launch Admin打开页面,输入admin/admin进入。打开“服务器设置”——〉“HTTP绑定”,将两个选项分别启用及enabled。然后注意HTTP绑定的端口,默认是7070。保存设置后重起openfire就OK了。通过浏览器打开http://[openfire的IP]:7070/red5/sparkweb/就看到了登陆界面了。输入openfire的用户的用户名及密码就等到到openfire了。
安装完red5插件后,openfire的管理控制台中会增加一个red5的配置页,保持默认,什么都不用改。
另外,在red5/sparkweb下的文件,看起来非常熟悉,就是从igniterealtime网上下载的Sparkweb的结构。所以可以下载最新的Sparkweb替换。
5.2 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好友发送消息以及接收消息。
SPARK二次开发:
1.准备工作:
到官网上下载Openfire 3.6.4,并通过svn下载openfire、Spark和SparkWeb的源代码
官网地址如下:
http://www.igniterealtime.org/downloads/index.jsp
注意官网上最新的Spark版本是2.5.8,其jdk环境最好使用1.6的版本。
2.环境搭建——spark源码安装配置
双击openfire_3_6_4.exe进行openfire的安装,安装过程很简单,不介绍了。
本例的开发环境是基于Eclipse的。
1)选择File——New——Project——Java Project。
输入项目工程名spark
Contents中选择 "Create project from existiing source",然后把spark文件所在的文件夹加进去.
点击Finish。
2)生成Spark:
点击Window::Show View::Ant
右击Ant面板,选择Add Buildfiles
展开spark::build文件夹,选择build.xml,点击"OK"
在Ant面板,展开Spark,双击"release",等一段时间,会提示"Build Successful"。
3)运行Spark:
点击Run::Open Debug Dialog...,出现"Run"窗口
选择"Java Application",右键点击"New"按钮.
在"Main"标签页,将New_configuration换成Spark.
点击Project::Browse按钮,选择Spark,再点OK.
点击Main class::Search按钮,选择main所在的类org.jivesoftware.launcher.Startup再点击OK
建议勾选Stop in main.
点击Classpath标签页,选择User Entries ,使得Advanced..按钮变的可用.点击Advanced按钮.在弹出来的Advanced Options窗口,选择Add Folders,再点OK,在Folder Selection窗口选择spark::src::resources 文件夹,点击OK
选择Common标签页,勾选Debug,Run前面的框
点击Apply,再点击Close
4)在run下选择spark,运行成功!
参考文档:http://www.igniterealtime.org/community/docs/DOC-1040
http://wanghaibin0921.blog.163.com/blog/static/36068840201351785643146/
openfire安装配置完全教程相关推荐
- mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...
本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...
- php性能分析工具XHProf安装配置使用教程(linux精华版)
XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调 ...
- iis7 php5 isapi配置,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
说到PHP环境配置与安装,通常以Apache搭载PHP配置为主,随着PHP版本不断更新,对Windows IIS平台的支持也越来越好,在Windows IIS平台上配置安装PHP环境也越来越方便. 在 ...
- 乌班图mysql8.0安装第一次手工启动_Ubuntu Server 16.04下mysql8.0安装配置图文教程
Ubuntu Server 16.04下mysql8.0安装配置图文教程 1.从Mysql官网上下载安装文件.有两种方式可供选择: 使用APT安装方式安装 使用完整的安装包进行安装 sudo dpkg ...
- mysql zip win10安装_mysql 8.0.16 Win10 zip版本安装配置图文教程
本文为大家分享了mysql 8.0.16 Win10 zip版本安装配置图文教程,供大家参考,具体内容如下 首先去mysql官网下载mysql最新版本 1.选择如图所示 community 2.点击 ...
- Emacs 安装配置使用教程
Emacs 安装配置使用教程 来源 https://www.jianshu.com/u/a27b97f900f7 序|Preface 先来一篇有趣的简介:Emacs和Vim:神的编辑器和编辑器之神 - ...
- mysql5.7.17winx64安装_MYSQL数据库mysql 5.7.17 winx64安装配置图文教程
<MysqL数据库MysqL 5.7.17 winx64安装配置图文教程>要点: 本文介绍了MysqL数据库MysqL 5.7.17 winx64安装配置图文教程,希望对您有用.如果有疑问 ...
- 从零开始——Emacs 安装配置使用教程 2015
从零开始--Emacs 安装配置使用教程 2015 字数11995 阅读13410 评论12 喜欢41 教程存档Github 序|Preface 先来一篇有趣的简介:Emacs和Vim:神的编辑 ...
- win10+vs2019+FFTW64位安装配置保姆教程
win10+vs2019+FFTW64位安装配置保姆教程 FFTW 是一个C语言的快速傅立叶变换库.(据说是世界上最快的FFT哦) vs2019下载与安装 参考链接:VS2019安装教程 FFTW下载 ...
最新文章
- jasp报错_jetty启动访问jsp页面报错
- 【PHPExcel】生成Excel2007文件并下载
- 机器学习-聚类之K均值(K-means)算法原理及实战
- 艰困之道中学到的经验教训
- Android: android 如何预置APK
- Spring4.0学习笔记(5) —— 管理bean的生命周期
- 关于c# 静态构造函数的说明
- linux源码中的核心数据结构
- 2008服务器系统来电自启,服务器2008自动重启
- [转载]Windows系统的错误报告保存在哪个文件夹里?
- [CTF]学习资源推荐
- html开发一个月多少钱,html5前端开发工资一般是多少
- php 替换表情符号,php怎么实现正则替换特殊符号
- [轉]ERP系统之比较——SAP、Oracle、BAAN、JDE、SSA
- references column 'xxx' which is not in SELECT list
- matlab在线_正版MATLAB向中国人民大学全校师生免费开放!
- 多光谱行人检测(一)Multispectral Pedestrian Detection:Benchmark Dataset and Baseline
- 关于“一个SAPer的网络日志”
- js设置cookie有效期,并获取存储的cookie值
- 如何在Windows 10桌面显示我的电脑和控制面板等系统图标