当前位置:文档之家› openfire源码部署开发

openfire源码部署开发

openfire源码部署开发
openfire源码部署开发

一.

Openfire源码布署与打包【转载】

https://www.doczj.com/doc/2a3740755.html,/779468/157942

2009-05-14 16:33:27标签:源码Openfire打包[推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。

https://www.doczj.com/doc/2a3740755.html,/779468/157942

今天心血来潮下载了Openfire的最新源码3.6.4重新布署,结果失败。折腾了几十分钟才搞定,于是记录此过一)准备工作

开发工具:MyEclipse 6.6

源码下载:官网地址https://www.doczj.com/doc/2a3740755.html,/projects/openfire/,偶下的3.6.4。

二)解压源码

将源码解压到硬盘上。如图:

三)创建工程

1、启动MyEclipse

2、[File]-->[Switch Workspace]-->[Other...]

3、在Workspace输入框中选择先前源码的解压路径。如图(注意此处与上图的区别):

4、MyEclipse重启后新建一个Java Project

5、在对话框的Project name中输入工程名;选中Create project from existing source项;在Direc 路径(此值与第一个图的地址是相同的)。如图:

6、点击Finish,MyEclipse会将源码列出。如图:

四)编译

1、[Window]-->[Show View]-->[Ant]

2、在Ant视窗中点右键,选择[Add Buildfiles...]。如图

3、在打开的对话框中选择Openfire/build/build.xml后点[OK]按钮。如图:

4、展开Openfire XMPP Server树,在openfire上点键;[Run As]-->[Ant Build]开始编译。如图:

编译完成后会在Console视窗中提示BUILD SUCCESSFUL表示openfire编译成功。

5、按上面相同的方法编译plugins。

五)配置调试与运行环境

1、当全部编译完成后,在Package Explorer视窗中按[F5]键以更新目录结构。此时在目录中会添加两个新

2、打开工程属性对话框,Java Build Path/Libraries页面,点击[Add JARs...],将Openfire/target/op 所有jar文件添加进来。如图:

3、[Run]-->[Open Run Dialog...]打开对话框。

4、Main页面。在Project选项中点击[Browse...]按钮,选择Openfire。

在Main class选项中点击[Search...]按钮,在打开的对话框中输入ser后,选择ServerStarter双击。如下图:

设置结果如下图:

5、Arguments页面。在VM arguments中加下内容-DopenfireHome="${workspace_loc:Openfire}/t 如图:

6、Classpath页面。选中User Entries,点击[Advanced...],在打开的对话框中选择Add Folders,点[话框中选择Openfire/src/i18n双击。如图

按照上面的方法将Openfire/src/resources也添加进来。最后的结果如图:

7、Common页面。选择Run、Debug。如图:

8、点击[Apply]保存,再点[Run]在开发环境运行Openfire。

六)打包发布

安装Install4j后,Ant视窗中对Installer进行Build就Ok了。只是要配置Default VM Arguments的内mx512m。如图:

本文出自“£一片空白£” 博客,请务必保留此出处https://www.doczj.com/doc/2a3740755.html,/779468/157942

二.

Openfire源代码调试、编译开发环

境https://www.doczj.com/doc/2a3740755.html,/wenwucauc/archive/2008/08/26/2832551.aspx

说明:开发环境(IDE):Eclipse 3.3.2+JDK1.6+Ant

1.7+Openfire_src_3_5_1.zip

1. 如果代码中使用了import testng.xxx语句,就需要导入

testng-5.8-jdk15.jar类库;

2. 对于警告信息,是没有关系的。因为这些警告信息是使用1.5以上版本JDK时候才出现的,使用JDK1.4是不会出现这些警告信息的。因为这些代码中的有些是使用JDK 1.4编写的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。这些警告信息主要是提示将这些非泛型的代码修改为更加高级的方法——泛型,所以这些警告信息是不影响代码结果的。

如果需要修改为泛型也是可以,使用泛型来处理相关的集合类。

3. 在使用ant进行编译的时候,在ant视图中可能会出现警告如下信息:

taskdef class com.install4j.install4jtask cannot found

这个主要是要安装用来打包Java应用程序的install4j.exe程序,要安装到其默认的安装路径下。也就是C:\Program Files\目录下即可。

4. 在源码里面有一个文件夹里有个打包的图标,双击那个图标,install4j就会读取你在build.xml文件里的信息、在里面完成做界面等打包工作。

编译调试的环境(IDE):Eclipse 3.3.2+JDK1.6+Ant(内置)

+openfire_src_2008-06-04.zip

在Windows操作系统下编译、调试openfire之前,需要确保HTTP SSL服务已经启动。否则,会出现各种错误信息。

1. 获取Openfire源代码

从官方网站上直接下载官方发布版本的源代码

openfire_src_2008-06-04.zip源代码压缩包;

2. 创建openfire工程

将openfire_src_2008-06-04.zip解压后,目录下除了READEME.html、LICENSE.html和changelog.html三个网页文件之外,有下面四个子目录。

build目录:build目录下收录的是生成安装文件(例如:rpm)所要的一些文件,例如JRE等。

resources目录:resources目录下收录的是一些为实现国际化(i18n)和本地化的一些编码文件(例如:英文,中文,法文,德文等)。

documentation目录:documentation目录下收录的是一些关于Openfire安装和配置的信息,但最终要的是这里有Openfire开发的Javadoc。

src目录:这个src文件夹就是我们想要的Openfire源代码了,这下面又有许多文件夹,我们只要Java文件夹就好,这里面实现的Openfire的核心功能,通过它就可以调试Openfire。

如果您是做二次开发,为了定制自己的服务器端,就可以采用这样方法:

(1)新建工程:File->New->Project->Java Project,单击Next,在Project name文本框中输入工程名:openfire,单击Finish

(2)解压后得到的openfire_src_3_5_1\src目录下所有内容复制到新建的工程目录workspace\openfire下

(3)在Package Explorer视图中,右击openfire工程,选择Properties,在弹出的对话框中选择Libraries->Add JARs..,把

openfire_src_3_5_1/build/lib目录下的*.jar类库全部添加进来;选择Source 标签页,Add Folder..,选中src/java目录前的复选框,点击OK,点击OK按钮。

(在Eclipse中将此Java文件夹当成源代码文件夹新建工程,建立新工程后观察Openfire所import的包,发现Openfire用了许多开源工具,而这些库都在上文提到的Build目录的lib目录下,将Openfire用到的库都添加到这个新建工程的Referenced Libraries中。或者如果这样一个一个添加比较麻烦的话还有一个方法就是从你安装好的Openfire服务器目录下的lib目录中(例如:”D:\Program Files\Openfire\lib”或“/usr/local/openfire/lib”)找到openfire.jar,打开后将里面的org/jivesoftware删除,重新打包成jar并添加到这个新建工程的Referenced Libraries中,这样就可以省去了很多类似的工作。)

(4)但是这样新建的openfire项目没有打包部署,需要开发者自己完成相应的工作。

注意:新建工程之后,可能会出现一些警告信息,下面对此予以说明:

对于警告信息,是没有关系的。因为这些警告信息是使用1.5以上版本JDK 时候才出现的,使用JDK1.4是不会出现这些警告信息的。因为这些代码中的有些是使用JDK 1.4编写的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。这些警告信息主要是提示将这些非泛型的代码修改为更加高级的方法——泛型,所以这些警告信息是不影响代码结果的。如果需要修改为泛型也是可以,使用泛型来处理相关的集合类。

3. 编译工程

openfire是用ant构建的,所以要先设置使得eclipse中每次编译都使用内置的ant工具,保证编译的正确执行。同时,要在Eclipse中设置为使用JDK

作为JVM,如果使用JRE作为JVM,编译就会失败。

因为openfire在Windows下是使用install4j打包成.exe格式的安装文件的,所以需要安装install4j。否则,在使用ant进行编译的时候,在ant视图中可能会出现警告如下信息:taskdef class com.install4j.install4jtask cannot found。这主要是要安装用来打包Java应用程序的install4j.exe程序,而且将要安装到其默认的安装路径C:\Program Files\install4j下。

注意:有时候在Windows下安装的时候,可能会出现如下图所示的错误,而导致无法安装

但是,只要将安装程序install4j_windows_4_1_2_with_jre.exe拷贝到上面提示的目录下进行安装就可以安装成功,如复制到C:\Documents and Settings\liaolonglong目录下。

(1)在eclipse中点击Window->Show View->Ant,打开Ant窗口;

(2)在Ant 视图中,单击右键,在弹出的快捷菜单中选择Add Buildfiles..;

(3)在弹出的对话框中,展开openfire/build文件夹,选择build目录下的build.xml,点击OK;

(4)在Ant视图中, 展开Openfire XMPP Server,双击 openfire(default)编译工程

(5)如果在Console视图中显示“BUILD SUCCESSFUL”就表示编译成功。

7. 创建项目Builder

(1)在eclipse的菜单栏中,选择Run->Open Run Dialog...,在弹出的对话框左侧的树形结构中选择Java Application,单击右键,选择New创建启动配置。

(2)在Run窗口的Main选项卡中, 修改Name文本框中的值,改成包含要启动的类的工程名openfire

(3)在Run窗口的Main选项卡中,点Browse按钮,选择openfire

(4)在Run窗口的Main选项卡中,点Search按钮,选择Main class为

org.jivesoftware.openfire.starter.ServerStarter,单击Apply按钮。(这是openfire的启动类)

(5)点击进入Arguments选项卡,在VM arguments文本框中输入

-DopenfireHome="${workspace_loc:openfire}/target/openfire"

单击Apply按钮。这个是用于eclipse执行java命令时传递的参数,这样openfire程序可以通过System.getProperty(“openfireHome”)得到openfire 的本地位置。

(6)点击进入Classpath选项卡,选中User Entries,这样Advanced...就处于可用状态;点击Advanced...按钮,在Advanced Options页面,选择Add Folders, 单击OK。(默认情况下,已经将工程openfire添加到了这里,而不需要进行该项操作,如果有多个工程的时候才需要执行该项操作。)

选择openfire\src\i18n, 点OK按钮将这个文件夹加入到Classpath选项卡中;同样的方式把openfire\src\resources目录下的jar文件夹也加到Classpath选项卡中。

(11)在Common选项卡中,勾选Run复选框,单击Apply按钮。

设置完毕,这样以后在run这个工程的时候就会按照正确的配置进行了,debug的设置和run的设置类似,不再多说。

注意:提示错误如下:

HTTP ERROR: 500

INTERNAL_SERVER_ERROR

RequestURI=/setup/index.jsp

Caused by:

https://www.doczj.com/doc/2a3740755.html,ng.NullPointerException

at

org.jivesoftware.admin.AdminConsole.getAppName(AdminConsole.java:122)

at

org.jivesoftware.openfire.admin.decorators.setup_jsp._jspService(setu p_jsp.java:168)

at

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

at

javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at

org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487 )

org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 62)

at

org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:216)

at

org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 81)

at

org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 26)

at

org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at

org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192)

at

com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(Pag eFilter.java:156)

at

com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilte r.java:59)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084)

at

org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:66)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084)

at

org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacte rEncodingFilter.java:42)

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084)

at

org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:70)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084)

at

org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java: 99)

at

org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084)

at

org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 60)

at

org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:216)

at

org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 81)

at

org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 26)

at

org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at

org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHand lerCollection.java:206)

at

org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection. java:114)

org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1 52)

at org.mortbay.jetty.Server.handle(Server.java:324)

at

org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:50 5)

at

org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpCo nnection.java:829)

at

org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at

org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at

org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at

org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja va:395)

at

org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.j ava:488)

Powered by Jetty://

这时因为是文件路径所导致的问题,需要将admin-sidebar.xml和openfire_i18n_en.properties这2个文件直接放在openfire\bin目录下即可解决这个问题。

如果再次出现,这样的问题,就需要将openfire目录下的你把openfire下的work 和target文件都删除了,然后重新发布一个。因为web的内容不会自动更新的,只有.class会自动更新。

OpenFire插件开发基础教程

O p e n F i r e插件开发基础教程 Openfire是一款优秀的XMPP服务器,而且是开放源码的.大家可以根据自己的需求进行二次开发。二次开发主要有两种方式:1.修改源代码,2开发openfire插件。从可扩展性上考虑,自然是开发插件是上策,只有插件无法实现时候才会选择修改源代码。 下面就个人经验,说明一下如何开发openfire插件 一、环境基础 要有一个配置好的openfire开发环境,这个网络上有比较详细的教程了。比如《》和《行》,这时候ant应该是可以正常运行的,先执行openfire 【default】,就生成了openfire的目标代码,再执行plugins,就个生成所以系统自带的插件。 二、目录拷贝 打开workspace\openfire_src\src\plugins目录,找一个要修改的插件,我选的是subscription,拷贝生成“subscriptionUF”。打开src目录,里面有两个文件夹 ,java就是我们要改的源码,而web里面是修改这个插件所要用的web 配置页面,目前用不到,直接删除。 三、修改plugin.xml 这个一个xml文件,里面的内容就按照自己的样子更改吧。最关键是确定,插件所在的类名,既然没有web文件夹了adminconsole也全部注释掉吧. 四、修改类和类目录 修改src/java里面的目录层次,Class和src/java中的路径必须一致。 五、引入openfire项目 右击openfire项目,选择New->Source Folder,在Floder name中选择到刚刚新增的插件目录,注意要选到src/java这一层 六、修改类文件 SubscriptionPluginUF是完全copy SubscriptionPlugin的,因此有两个类名不符的error修改一下. 至此,整个openfire已经把我们新加的SubscriptionPluginUF包含在他的plugins中了,通过控制台也能看到一个仿冒的SubscriptionPluginUF插件 七、单独编译插件 如果每次都运行plugins,生成所有插件的同时生成我们修改的插件,固然可行,就是慢了一点,插件有什么错误也要找半天。Openfire还很贴心的给了只生成我们想要的插件的ant 指令— plugin,我们要做的工作就是告诉ant,我们的目标插件名是 SubscriptionPluginUF。 增加一个plugin的property,这样只需要点击plugin,就能生成我们的插件了。P.S.openfire插件的目录和文件组织 请参考/documentation/docs/plugin-dev-guide.html

基于XMPP协议和Openfire的即时通信系统的开发

万方数据

万方数据

万方数据

基于XMPP协议和Openfire的即时通信系统的开发 作者:潘凤, 王华军, 苗放, 李刚 作者单位:潘凤(成都理工大学信息工程学院,四川,成都,610059;运城学院计算机科学与技术系), 王华军,苗放(成都理工大学信息工程学院,四川,成都,610059), 李刚(华商世纪(北京)科贸发 展股份有限公司) 刊名: 计算机时代 英文刊名:COMPUTER ERA 年,卷(期):2008,(3) 被引用次数:1次 参考文献(5条) 1.许鼎即时通信四种协议简述 2003 2.庞怡即时通讯工具现状及发展趋势分析[期刊论文]-科技情报开发与经济 2006 3.Jason Kichten.李军用基于XML的即时消息开发Jabber 2003 4.Peter S A XMPP Instant Messaging and Presenee 2004 5.Jabber官方组织"Jabber::Protocol" 相似文献(6条) 1.学位论文付莎基于XMPP协议企业级IM的研究与实现2009 近年来即时通信技术的飞速发展使即时通信工具的应用更为广泛,给个人的网络生活、企业的日常办公都带来了极大的便利性与高效性。XMPP( eXtensible Messaging and Presence Protocol)可扩展消息与出席协议技术便是其中较为活跃的一种即时通信技术。由于即时通信工具在企业中的应用给企业的运营管理带来诸多便利,因而在企业中的应用越来越广泛,具有很高的研究与应用价值。 目前常用的即时通信软件的协议种类繁多,本文在研究比较了当前流行的几种协议之后,选用了基于可扩展标记语言XML的XMPP协议,由于其开放性、扩展性、安全性良好等诸多优势,并可以实现与使用其他协议的即时通信软件的互联互通,且发展前景良好,因而对于开发一款企业级即时通信系统有着十分明显的优势。本文从对XMPP协议的介绍与分析入手,首先简要介绍了XMPP协议及其发展,XMPP协议的特点,然后又深入介绍了XMPP协议的内容:XMPP协议的系统构架、地址空间、数据的传输结构、以及通信链路的建立过程等。在对协议进行了深入研究的基础上,根据本文的研究目标,针对企业级即时通信系统的特点进行需求分析,并设计与实现。在实现了即时通信的消息收发、名册管理、出席信息的交换等基本功能的基础上,着重研究了用户的管理控制问题、权限划分、可追溯性管理及功能性、扩展性的要求,实现了会议功能、文件传输,以及广播功能,模拟了与非XMPP系统进行交互的过程。在开源软件系统Openfire及Gloox库的支持基础上,最终设计并实现了一套完善的面向企业级的即时通信系统。 最后对系统进行了测试,完成了测试平台的搭建工作,建立相应的测试用例。系统实验测试的结果表明:系统功能完善、稳定,界面友好简洁,满足企业级即时通信系统的需求。 2.学位论文招俏春基于XMPP协议的即时通讯系统的研究2008 随着互联网的普及和发展,即时通讯已经成为人们交流的重要手段。目前有许多的IM系统,如AOL IM、Yakoo IM和MSN IM,它们使用了不同的技术,而且它们互不兼容。XMPP/Jabber的提出打破了传统即时通信系统之间无法实现互联互通的局面。XMPP对于即时通信是一个开放的基于xml的数据模型和协议,采用了分布式的网络体系机构,模块化可扩展的系统架构,使得扩展它的功能变得简单。 利用Jabber/XMPP的体系结构,构建了一个基于XMPP协议的即时通信系统,包括即时通信系统的客户端和服务器。其中服务器采用开源的Jabber服务器Openfire,客户端基于XMPP核心及扩展协议利用Google Talk的开发包libjingle进行研究开发。设计了一个与Openfire互联通信的客户端系统,实现与客户音的文字、语音、视频、文件及实时数据通信功能;研究了XMPP协议及其在协同通讯领域的应用。 介绍了即时通讯的现状、发展趋势,分析了客户端软件的开发环境和所要用到的几个相关技术。在此基础上设计出基于)(MPP协议的能与Jabber服务器Openfire实现互通的客户端软件的总体架构和基本模型,并对即时通讯客户端的具体设计进行了全方位的阐述:在XMPP流通信基础上的文字通信及扩展的群组通讯;基于JEP扩展协议Jingle协议完善了系统功能,进行了客户问的P2P(Peer-to-Peer,点对点)连接扩展,从而实现了可靠的实时语音视频、文件、实时数据等P2P通信。另外还对客户端设计中的几个关键问题,网络安全机制和带NAT的防火墙穿越等方面的进行了较为深入的研究,并论述了本系统所采用的方案。最后总结了本设计的工作与成果,并提出下一阶段的研究设想。 3.期刊论文路璐.王华军.苗放.李刚.Lu Lu.Wang Huajun.Miao Fang.Li Gang基于Jingle协议及Opnefire的语音通信原理与实现-办公自动化(综合版)2007(12) 本文对Jingle协议及Openfire开源项目进行研究和分析,在此基础上进行点对点语音通信原理的分析和实现,并指出该通信方式的优点和不足. 4.学位论文罗伟基于Android平台的即时通讯系统的研究与实现2009 随着移动通信与Internet的飞速发展及相互融合,GPRS使无线网络高速接入到Internet成为现实,移动用户从而可以享受到Internet提供的服务。即时通讯是基于互联网协议的应用程序,它能够使应用不同设备的用户进行通信,随着手机的不断普及以及性能的不断提升,为即时通讯系统从传统的PC机到手机的移植提高了很好的条件。而且在中国庞大的手机用户中,通过手机使用即时通讯软件的用户越来越多。当前的手机操作系统都过于封闭 ,各大即时通讯软件采用的通讯协议也不统一,而Android是基于Linux的开源的手机操作系统平台,XMPP是基于XML的开源的即时通讯协议,因此基于Android平台和XMPP协议开发即时通讯系统具有很好的应用前景。 本文给出了系统的研究背景,对当前手机操作系统、即时通讯软件和即时通讯协议的发展现状做了简单的介绍。进而详细的分析了Android的特征、架构以及Android应用的构成和工作机制,并对Android与其他手机操作系统进行了比较,说明了Android在手机操作系统中的优势。提出了系统的架构 ,以及系统服务器端和客户端的解决方案,采用开源的Openfire作为系统的即时通讯平台,实现移动客户端之间的即时通讯。对系统客户端的组成模块进行了介绍,对即时通讯协议XMPP以及系统的通讯机制进行了分析。针对当前通信数据的安全问题并结合本系统的特点,对IDEA数据加密算法进行了改进,提出了A—IDEA算法的设计,并对两种算法从几个方面进行了对比分析,对于图片文件的加密,采用A—IDEA与RSA算法相结合的方案。对服务器的运行流程进行了分析并对系统客户端进行了详细的设计与实现,对系统进行了部署和测试。 5.期刊论文剧忻.苗放.JU Xin.MIAO Fang基于MINA开发高性能网络应用程序——以实现XMPP协议

spark+openfire 源代码部署

spark+openfire二次开发(一) 文章分类:Java编程 1.准备工作: 到官网上下载Openfire 3.6.4,并通过svn下载openfire、Spark和SparkWeb 的源代码 官网地址如下: https://www.doczj.com/doc/2a3740755.html,/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.

OpenFire环境搭建说明文档

OpenFire环境和 插件开发说明文档 1概述 1.1编写目的 本文档旨在为在Windows系统下快速构建Openfire开发环境和集成插件环境进行相关说明。期望读者为Openfire开发人员和Openfire 服务器测试、维护人员。 1.2术语说明 Openfire服务器:基于XMPP(jabber)协议的开源实时协作(RTC)服务器,采用Java语言开发。可快速构建企业级的高效及时通信服务器。 Openfire插件:Openfire的可扩展应用服务模块,单个插件可通过Openfire的后台管理功能进行管理、发布、升级。 2准备资料 2.1运行环境 1.JDK:jdk 1.5以上,建议采用jdk1.6以上版本。版本基于操作 系统x86/x64确定。目前服务器采用x86 版本jdk1.6.0_01。

2.Mysql:Mysql5.0以上,建议采用mysql5.5以上版本。 2.2资源文件 Openfire源文件:Openfire版本【Openfire3.7.1】 3结构说明 3.1项目结构

服务器部分: a)src/java:Openfire服务器源代码 b)src/plugins:Openfire插件源代码 c)build:build.xml Openfire服务器编译打包脚本 d)documentation:安装开发说明文档和javadoc e)resources:国际化资源文件 f)src:源文件其它资源 g)target:编译后的Openfire服务器 h)work:开发环境Openfire工作目录 自定义部分: a)ant:plugin-utils.xml 自定义帮助类编译打包脚本 b)build:build-utf8.xml utf8格式Openfire服务器编译打包脚本 c)plugin-jar:自定义插件存放目录,从target/openfire/plugins/ 下拷贝,主要为提交到SVN服务器 d)src/plugins/rosterservice/src/java:关系服务插件源文件 e)src/plugins/accountservice/src/java:账号服务插件源文件

Openfire+Spark+Spark Web安装配置

Openfire+Spark+Spark Web安装配置 一.安装环境 操作系统:Windows XP Prefessional SP2 服务器软件:Openfire 3.4.2 Openfire Enterprise 3.4.2 客户端软件:Spark 2.5.7 Spark Fastpath Webchat 3.4.1 JDK:J2SE 5.0 (1.5.0_03) 二.安装Jabber服务器软件 2.1 软件下载 Jabber官网地址:https://www.doczj.com/doc/2a3740755.html,/ 常用Jabber服务器软件:https://www.doczj.com/doc/2a3740755.html,/software/servers.shtml 本文以Openfire(Wildfire)为服务器,一款基于GPL协议开源软件,支持各种操作系统,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址:https://www.doczj.com/doc/2a3740755.html,/downloads/index.jsp#openfire Windows无java环境版本地址: https://www.doczj.com/doc/2a3740755.html,/downloadServlet?filename=openfire/openfire_3_4_ 2.zip 最新版本:Openfire 3.4.2 2.2Windows版本安装 将openfire_3_2_2.zip解压缩到D:\。特别要注意,openfire的全路径中不能有中文字符,最好主机名也是标准点的英文名称。直接运行安装文件, D:\Openfire\bin\openfire.exe

Openfire安装配置

一、环境 操作系统:Windows XP SP3 Web服务器:Tomcat 6.0.18.0 Java Version:1.6.0_21 Jvm Version:1.6.0_21-b07 Openfire服务器:Openfire 3.7.0 Openfire Plugin:Fastpath Service 4.2.0 Fastpath Webchat 4.0.0

二、Opernfire环境安装配置 1. Openfire下载 目前最新版为3.7.0 下载地址:https://www.doczj.com/doc/2a3740755.html,/downloads/index.jsp 分为两个版本,一个是包含了JRE的安装版本,另外一个是不包含JRE的版本。也可以分别通过下面两个链接直接下载。 https://www.doczj.com/doc/2a3740755.html,/downloadServlet?filename=openfire/openfire_3_7_0.exe https://www.doczj.com/doc/2a3740755.html,/downloadServlet?filename=openfire/openfire_3_7_0.zip 2. Openfire安装 将下载的openfire_3_7_0.zip解压。Openfire的全路径中不能有中文字符,最好主机名也是标准点的英文名称。 3. 运行Openfire服务器 直接运行服务器文件。安装目录\Openfire\bin\openfire.exe。 出现启动界面

点击“Launch Admin”,或者在浏览器地址栏输入http://127.0.0.1:9000,进入Opernfire 管理控制台。 初次会进入Openfire设置界面,对Openfire进行初始设置。 3. Openfire初始设置 3.1 语言选择:中文(简体)

openfire插件开发

作用:初始化时在控制台打印测试消息。 开发环境:winxp/myeclipse6.5/jdk1.5&1.6/mysql5.0/openfire3.6.3 QQ群:28588322 (openfire专题研究小组) 开发步骤: 1. 布署openfire3.6.3源码(请参考openfire3.6.3导入eclipse项目实现方法) 结构如下: 2. src/plugins目录下新建文件夹itvi。并按下图的目录结构新建对应的文件。 plugin.xml文件代码如下:

org.jivesoftware.openfire.plugin.Itvi Itvi Broadcasts messages to users. openfireteam 1.7.0 2/19/2009 https://www.doczj.com/doc/2a3740755.html, 3.6.3 Itvi.java文件代码如下: package org.jivesoftware.openfire.plugin; import org.dom4j.Element; import org.jivesoftware.openfire.IQHandlerInfo; import org.xmpp.packet.*; import org.jivesoftware.openfire.handler.IQHandler; import org.jivesoftware.openfire.auth.UnauthorizedException; /** * 处理客户端发来的IQ,并回送结果IQ * * @author Phoenix * * Mar 14, 2008 4:55:33 PM * * version 0.1 */

openfire学习笔记

一、概念 1、OpenFire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。 可以使用它轻易的构建高效率的即时通信服务器。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 由于是采用开放的XMPP协议,可以使用各种支持XMPP协议的IM客户端软件登陆服务。 2、XMPP(Jabber)协议 1、介绍 XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP 的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP 包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 2、XMPP协议的优点 a. XMPP 协议是公开的,由JSF开源社区组织开发的。 b. XMPP 协议具有良好的扩展性。 c. 分布式的网络架构。 d. XMPP 具有很好的弹性。 e. 安全性。 3、XMPP消息格式 XMPP中定义了3个顶层XML元素: Message、Presence、IQ,下面针对这三种元素进行介绍。 用于在两个jabber用户之间发送信息。Jsm(jabber会话管理器)负责满足所有的消息,不管目标用户的状态如何。如果用户在线jsm立即提交;否则jsm就存储。 To : 标识消息的接收方。 from : 指发送方的名字或标示(id) Text: 此元素包含了要提交给目标用户的信息。 结构如下所示: 你好,在忙吗 用来表明用户的状态,如:online、away、dnd(请勿打扰)等。当用户离线或改变自己的状态时,就会在stream的上下文中插入一个Presence元素,来表明自身的状态.结构如下所示: From =‘lily @ https://www.doczj.com/doc/2a3740755.html,/contact’

openfire源代码研究

Openfire源码研究 Openfire源码目录结构 1.build目录:build目录下收录的是生成安装文件(例如:rpm)所要的一些文件,例如JRE等。 2.resources目录:resources目录下收录的是一些为实现国际化(i18n)和本地化的一些编码文件(例如:英文,中文,法文,德文等)。 3.documentation目录:documentation目录下收录的是一些关于Openfire安装和配置的信息,但最终要的是这里有Openfire开发的Javadoc。 4.src目录:顾名思义这个src文件夹就是我们想要的Openfire源代码了,这下面又有许多文件夹,我们只要Java文件夹就好,这里面实现的Openfire的核心功能,通过它就可以调试Openfire了。 命名规则 Openfire中常见的类名后缀命名包括Starter、Plugin、Listener、Dispatcher、Handler、Manager、Provider,通常情况下,这些命名类包括如下意义: XXStarter 系统启动类,如org.jivesoftware.openfire.starter.ServerStarter,调用其start()方法可启动系统应用。 XXListener 业务的最终处理类。 XXDispatcher 调度类,其中有很多关键方法,如addListener(),以组合的方式,为类内定义的静态Set实例添加XXListener对象。以便调用dispatchEvent(String property, EventType eventType, Map params)方法遍历处理Set集中的XXListener对象(通过调用XXListener对象的各实际方法完成实际业务)。 XXPlugin 实现Plugin接口的插件类,需实现initializePlugin(PluginManager manager, File pluginDirectory)方法和destroyPlugin()方法。在其初始化方法中调用Dispatcher实现类的addListener()方法如PropertyEventDispatcher.addListener(this)。 XXProvider 实现面向接口编程方式的接口类,通过反射机制创建具体实现类的对象,反射类名配置在ofproperty表对应的记录propvalue属性中。若没有相关配置,则调用默认实现类,默认实现类类名命名规则为DefaultXXProvider。 XXHandler 实际处理类,以ConnectionHandler为例,在org.jivesoftware.openfire.spi. ConnectionManagerImpl类的startClientSSLListeners(String localIPAddress)方法中,有这样一段代码:sslSocketAcceptor.bind(new InetSocketAddress(bindInterface, port), new ClientConnectionHandler(serverName));其中bind方法的第二个参数是新创建的一个ClientConnectionHandler的实例,而它就是ConnectionHandler的一个子类。

Openfire_spark_安装手册

Openfire+Spark安装手册 王保政 QQ:29803446 Msn:baozhengw999@https://www.doczj.com/doc/2a3740755.html, 关键字:快速开发平台openjweb 增删改查即时通信 2009-8-29

目录 第一章JA VA领域的IM解决方案 (3) 第二章安装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文件,增加一新行: https://www.doczj.com/doc/2a3740755.html, (用户根据自己的需要可配置称别的名字,但最好符合带.的域名格式) 其他机器使用域名访问openfire,也需要在C:\WINDOWS\system32\drivers\etc\hosts中指定https://www.doczj.com/doc/2a3740755.html,对应的ip地址,假设安装openfire的主机IP为192.168.1.10,则hosts文件中应增加一新行: 192.168.1.10 https://www.doczj.com/doc/2a3740755.html, 通过这种方式指定主机域名,建议安装openfire的机器配置静态ip地址以免ip发生改变。 2.2 安装openfire 2.2.1 安装 安装程序为openfire_3_6_4.exe,运行后,语言选择简体中文,见下图:

MQTT协议之Apache Apollo 安装使用

MQTT协议之Apache Apollo 安装使用 Apache Apollo是一个代理服务器,其是在ActiveMQ 基础上发展而来的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多种协议。 Apollo允许客户端通过开放的MQTT协议连接。该协议主要是用在资源有限的驱动上,以及网络不稳定的情况下使用,是一个订阅、发布模型。这种驱动通常不适用类似http,stomp这类基于文本,或者类似openfire,AMQP等传统二进制协议。MQTT是一个简介的二进制协议,适用这类驱动资源受限,而且是不稳定的网络条件下。之前的稳定发布版本中,MQTT是作为一个Apollo的一个插件提供的。但是现在,这个插件已经变为开发项目的一部分。MQTT在Apollo 中已经不需要其他配置文件或者是第三方插件支持了。 MQTT是一个线路层的协议,任何实现该协议的客户端都可以连接到Apollo。当然也可以整合其他MQTT兼容的消息代理中。 更多有关MQTT协议内容,参考the MQTT Specification MQTT协议配置

为了开始使用MQTT协议,首先使用MQTT3.1协议的客户端,连接到Apollo正在监听端口。Apollo会做协议检测,而且自动识别MQTT连接,而且将连接作为MQTT协议处理。你不必要为MQTT协议打开一个端口(STomp,Openfire,AMQP等都是自动识别)。如果你一定指定连接的协议,有下面两种方式:你可以选择不用协议识别,而是为MQTT指定连接: <connector id="tcp" bind="tcp://0.0.0.0:61613" protocol="mqtt"/> 或者你可以限制哪种协议可以被自动识别。通过下面的 <detece>配置方式: <connector id="tcp" bind="tcp://0.0.0.0:61613"> <detect protocols="mqtt openwire" /> </connector> <detect> 下protocols 对应的参数通过空格来隔开支

Android基于XMPP协议的数据推送技术

深入学习XMPP协议 一.XMPP(协议简介) XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML 环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。 二.IM(即时通讯软件简介) Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。

三.本文主要内容 本文主要讲解在android使用xmpp协议进行即时通信,所涉及3个主要的东西,它们是openfire、smack和spark,这个三个东东结合起来就是完整的xmpp IM实现,这里简单介绍一下这3个东东在下文的作用: openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。 Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,当然因为是在android里,所以使用的是asmack这个包,里面方法跟smack包差不多。 Spark 是IM客户端的实现,其实就是使用了smack 的api实现的。 数据通讯具体实现的流程:

Openfire使用与插件开发

Openfire使用与插件开发 1、Openfire安装与配置: 下载:点此下载Openfire_src_3_5_1当前最新版本为3.51 配置: 1、把下载出来的压缩包解压存放到工作目录 2、打开Eclipse ,新建一个Project 点击Next 进入如下图: 3、选择第二项点击Browse 选择你Openfire解压出来的目录,Project name里添 项目名称,建议和文件夹名一致(复制Directory的项目名字),Finish完成。 4、在新建的项目上右键Run As →Open Run Dialog,弹出如下窗口:

双击Java Application 新建一个启动配置: Project 选择Openfire的项目,Main class选择启动类,这里我们选择ServerStarter 点击Search 文本框输入ServerStarter 找到类org.jivesoftware.openfire.starter.ServerStarter 点OK完成。 勾选上Stop in main,点击Apply。 切换到Arguments选项,在V M arugments 里加入:

-DopenfireHome="${workspace_loc:openfire_3_5_1}/target/openfire" ,点击Apply。 切换到Classpath下选择User Entries 单击Advanced →OK ,选择Openfire项目→src →i18n →OK。 重复上面操作再添加src →resources →OK,点击Apply。 切换到Common,勾选Run 、Debug ,点击Apply 。配置完成,我们点下面的Run。 程序启动,基本配置完成。 2、插件开发: 1、插件结构: testplugin/ |- plugin.xml <- 配置文件 |- readme.html <- 用户说明 |- changelog.html <- 更新日志 |- icon_small.gif <- 小图标 |- icon_large.gif <- 大图标 |- src/ <- 存放编译的类文件夹 |- database/ <- 存放数据库改动 |- i18n/ <- 国际化 |- lib/ <- 插件所需要的类库 |- web <- 显式调用插件时需要的Web页面 |- WEB-INF/ |- web.xml <- Web配置 |- web-custom.xml <- Web配置 |- images/ 在项目文件夹下手动新建一个插件文件夹,定义名为testpluin,进入文件夹根据需要新建以上文件夹或文件,其中web、i18n、icon、database都不是必须的。 在建立的src\java\org\jivesoftware\openfire\plugin下建立一个类,起名为TestPlugin。 建立plugin.xml : org.jivesoftware.openfire.plugin. TestPlugin

openfire_plugin开发流程

Openfire插件开发流程 1.插件结构: testplugin/ |- plugin.xml <-配置文件 |- readme.html <-用户说明 |- changelog.html <-更新日志 |- icon_small.gif <-小图标 |- icon_large.gif <-大图标 |- src/<-存放编译的类文件夹 |- database/<-存放数据库改动 |- i18n/<-国际化 |- lib/<-插件所需要的类库 |- web <-显式调用插件时需要的Web页面 |- WEB-INF/ |- web.xml <-Web配置 |- web-custom.xml <-Web配置 |- images/ 2.加入插件目录文件: 在eclipse的openfire项目文件夹openfire_src\src\plugins下手动新建一个插件文件夹,定义名为testplugin,进入文件夹根据需要新建以上文件夹或文件,其中web、i18n、icon、database 都不是必须的,可以只创建src文件夹和plugin.xml文件。 在建立的src文件夹下依次创建文件夹java,org,jivesoftware,openfire,plugin,形成 src\plugins\testplugin\src\java\org\jivesoftware\openfire\plugin的目录结构。在最底层,即plugin文件夹下建立java类,起名为TestPlugin.java。 修改建立好的plugin.xml : org.jivesoftware.openfire.plugin.TestPlugin Plugin Test Plugin Aaron 1.0.0 12/24/2007

openfire插件大全

Openfire中有效的插件(商业插件)可能对IM开发有帮助 插件可以给服务器增加新的功能。已经安装的插件会在下表中显示。当插件已经下载后可能需要一段时间用于安装。当插件安装成功后会在列表中显示。 开放源代码插件描述版 本 作者 File Size 安 装 Asterisk-IM Openfire Plugin Integratio n for Asterisk and Openfire. 1.4 .0 Jive Software 426.0 K Client Control Controls clients allowed to connect and available features 1.2 .0 Jive Software 162.2 K Clustering Plugin Clustering support for Openfire. 1.2 .3 Jive Software 59.2 K Content Filter Scans message packets for defined patterns 1.7 .0 Conor Hayes 24.7 K DB Access Provides administra tors with a simple direct access interface to their 1.1 .0 Daniel Henninger 8.1 K

开放源代码插件描述 本作者 Size 装 Openfire DB. Debugger Plugin Prints XML traffic to the stdout (raw and interpreted XML) 1.3 .0 Jive Software 11.7 K Email Listener Listens for emails and sends alerts to specific users. 1.1 .0 Jive Software 18.1 K Fastpath Service Support for managed queued chat requests, such as a support team might use. 4.3 .1 Jive Software 1.4 MB Fastpath Webchat Web based chat client for Fastpath. 4.0 .0 Jive Software 2.1 MB GoJara ProtoXEP -xxxx: Remote Roster Managem ent support 2.1 .5 Holger Bergunde / Daniel Henninger / Axel-F. Brand 297.2 K Jingle Nodes Plugin Provides support 0.1 .0 Jingle Nodes (Rodrigo Martins) 60.8 K

OpenFire 插件开发基础教程

OpenFire 插件开发基础教程 Openfire是一款优秀的XMPP服务器,而且是开放源码的.大家可以根据自己的需求进行二次开发。二次开发主要有两种方式:1.修改源代码,2开发openfire插件。从可扩展性上考虑,自然是开发插件是上策,只有插件无法实现时候才会选择修改源代码。 下面就个人经验,说明一下如何开发openfire插件 一、环境基础 要有一个配置好的openfire开发环境,这个网络上有比较详细的教程了。比如《》和《行》,这时候ant应该是可以正常运行的,先执行openfire 【default】,就生成了openfire的目标代码,再执行plugins,就个生成所以系统自带的插件。 二、目录拷贝 打开workspace\openfire_src\src\plugins目录,找一个要修改的插件,我选的是subscription,拷贝生成“subscriptionUF”。打开src目录,里面有两个文件夹 ,java就是我们要改的源码,而web里面是修改这个插件所要用的web 配置页面,目前用不到,直接删除。 三、修改plugin.xml 这个一个xml文件,里面的内容就按照自己的样子更改吧。最关键是确定,插件所在的类名,既然没有web文件夹了adminconsole也全部注释掉吧. 四、修改类和类目录 修改src/java里面的目录层次,Class和src/java中的路径必须一致。 五、引入openfire项目 右击openfire项目,选择New->Source Folder,在Floder name中选择到刚刚新增的插件目录,注意要选到src/java这一层 六、修改类文件 SubscriptionPluginUF是完全copy SubscriptionPlugin的,因此有两个类名不符的error修改一下. 至此,整个openfire已经把我们新加的SubscriptionPluginUF包含在他的plugins中了,通过控制台也能看到一个仿冒的SubscriptionPluginUF插件 七、单独编译插件 如果每次都运行plugins,生成所有插件的同时生成我们修改的插件,固然可行,就是慢了一点,插件有什么错误也要找半天。Openfire还很贴心的给了只生成我们想要的插件的ant 指令— plugin,我们要做的工作就是告诉ant,我们的目标插件名是 SubscriptionPluginUF。 增加一个plugin的property,这样只需要点击plugin,就能生成我们的插件了。P.S.openfire插件的目录和文件组织 请参考/documentation/docs/plugin-dev-guide.html

相关主题
文本预览
相关文档 最新文档