搜档网
当前位置:搜档网 › Openfire 插件开发

Openfire 插件开发

Openfire 插件开发
Openfire 插件开发

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.sodocs.net/doc/094962758.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.sodocs.net/doc/094962758.html,/ 常用Jabber服务器软件:https://www.sodocs.net/doc/094962758.html,/software/servers.shtml 本文以Openfire(Wildfire)为服务器,一款基于GPL协议开源软件,支持各种操作系统,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址:https://www.sodocs.net/doc/094962758.html,/downloads/index.jsp#openfire Windows无java环境版本地址: https://www.sodocs.net/doc/094962758.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.sodocs.net/doc/094962758.html,/downloads/index.jsp 分为两个版本,一个是包含了JRE的安装版本,另外一个是不包含JRE的版本。也可以分别通过下面两个链接直接下载。 https://www.sodocs.net/doc/094962758.html,/downloadServlet?filename=openfire/openfire_3_7_0.exe https://www.sodocs.net/doc/094962758.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.sodocs.net/doc/094962758.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.sodocs.net/doc/094962758.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.sodocs.net/doc/094962758.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.sodocs.net/doc/094962758.html, (用户根据自己的需要可配置称别的名字,但最好符合带.的域名格式) 其他机器使用域名访问openfire,也需要在C:\WINDOWS\system32\drivers\etc\hosts中指定https://www.sodocs.net/doc/094962758.html,对应的ip地址,假设安装openfire的主机IP为192.168.1.10,则hosts文件中应增加一新行: 192.168.1.10 https://www.sodocs.net/doc/094962758.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

相关主题