openfire插件(1)

插件核心类,这里对PacketInterceptor、Plugin进行继承。如果开发插件就一定要继承Plugin,而继承PacketInterceptor是拦截用户发送的消息包。对消息包进行过滤、拦截,保存我们需要的数据。openfire
的插件可以访问所有openfire的API。这给我们的插件实现提供了巨大的灵活性。以下提供了四种比较常用的插件集成方式。

2.1、Component:可以接收一个特定子域(sub-domain)的所有包。比如test_componet.hoo.com。所以一个发送给[email protected]_componet.hoo.com的包将被转发给这个componet.

2.2、IQHandler:相应包中特定的元素名或命名空间。下面的代码展示了如何注册一个IQHandler.

IQHandler myHandler = new MyIQHander();

IQRouter iqRouter = XMPPServer.getInstance().getIQRouter();

iqRouter.addHandler(myHandler);

2.3、PacketInterceptor:这种方式可以接收系统传输的所有包,并可以随意的丢弃它们。例如,一个interceptor
可以拦截并丢弃所有含有不健康信息的消息,或者将它们报告给系统管理员。

2.4、使用JiveGlobals.getProperty(String) 和 JiveGlobals.setProperty(String,
String)
方法将我们的插件设置为openfire的一个全局属性。通过实现org.jivesoftware.util.PropertyEventListener方法可以将我们的插件做成一个属性监听器监听任何属性的变化。通过
PropertyEventDispatcher.addListener(PropertyEventListener)方法可以注册监听。要注意的一点是,一定要在destroyPlugin()方法中将注册的监听注销。

openfire插件(1),码迷,mamicode.com

时间: 2024-08-08 09:42:01

openfire插件(1)的相关文章

openfire开发(五)openfire插件打包另类打法

由于我们的openfire插件引入的包越来越多,导致插件也越来越大,而且openfire3.10.x之后取消了pack200的打包方式(压缩),导致打包出来的插件越来越大,大概10M左右,上传速度大概200KB/s,有时候上传插件到50%多,因为网络不好,导致又得重传,蛋疼~~~ 因此就想琢磨着能不能不将插件开发时依赖的第三方包,不打包到插件之中.以下分析都是基于openfire3.10.x版本操作 1.首先解压插件分析结构,我们可以发现整个插件依赖的包是整个放到lib中的(和我们的开发目录中的

跟我一步一步开发自己的Openfire插件

http://www.blogjava.net/hoojo/archive/2013/03/07/396146.html 跟我一步一步开发自己的Openfire插件 这篇是简单插件开发,下篇聊天记录插件. 开发环境: System:Windows WebBrowser:IE6+.Firefox3+ JavaEE Server:tomcat5.0.2.8.tomcat6 IDE:eclipse.MyEclipse 8 开发依赖库: Jdk1.6.jasper-compiler.jar.jasper

openfire插件开发之IQHander

IQHander插件 注意事项 我们如果要做自己的IQ包处理,可以自定义类如TestTemplateMethodHandler:class TestTemplateMethodHandler extends IQHandler. 以下需要注意: IQ handlers相应包中特定的元素名或命名空间,在public IQHandlerInfo getInfo()方法中写上自己想要注册的元素名及命名空间.如: private IQHandlerInfo info;private String HIS

openfire主要插件介绍

这次我们来介绍下openfire提供的可选插件,方便大家在开发中使用. openfire插件下载地址: http://www.igniterealtime.org/projects/openfire/plugins.jsp 使用插件时大家请一定要注意插件支持的openfire版本,不要搞错了,否则是不能运行的. Broadcast最新版本 1.8.2广播消息插件,主要是将用户在群组内发的消息转发群组内的其他成员,开发群组功能会用到. Client Control 最新版本 1.1.0允许那些客户

openfire spark 二次 开发 服务插件

====================  废话 begin   ============================ 最近老大让我为研发平台增加即时通讯功能.告诉我用comet 在web端实现即时通讯. 最初狂搜集资料.不能让自己方向错了.这是很重要的. 不过还是难免的周折了一番.测试了一个comet4j的聊天小例子.用它前后端开发成本太大.对服务器也太大压力放弃了. 最终决定使用openfire +jsjac.js + JabberHTTPBind 然后实现老大要求的 web 及时通讯功

OpenFire源码学习之十四:插件管理

Plugin管理 Openfire把插件模块加入到容器分为以下步骤: l 通过classloader加载lib目录下载的所有jar l 通过classloader加载dir目录下的所有文件 l 定位和加载module.xml到context l 遍历jive模块实体,负荷给定的类作为一个模块,然后启动它 Openfire插件加载流程图: Openfire的插件管理类PluginManager.加载插件的方法是loadPlugin(File pluginDir)这里的参数pluginDir是插件的

基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件[转]

上一篇文章介绍到怎么在自己的Java环境中搭建openfire插件开发的环境,同时介绍到怎样一步步简单的开发openfire插件.一步步很详细的介绍到简单插件开发,带Servlet的插件的开发.带JSP页面插件的开发,以及怎么样将开发好的插件打包.部署到openfire服务器. 如果你没有看上一篇文章的话,请你还是看看.http://www.cnblogs.com/hoojo/archive/2013/03/07/2947502.html 因为这篇文章是基于上篇文章讲叙的基础上完成插件开发.而且

(转)OpenFire源码学习之十四:插件管理

转:http://blog.csdn.net/huwenfeng_2011/article/details/43418433 Plugin管理 Openfire把插件模块加入到容器分为以下步骤: l 通过classloader加载lib目录下载的所有jar l 通过classloader加载dir目录下的所有文件 l 定位和加载module.xml到context l 遍历jive模块实体,负荷给定的类作为一个模块,然后启动它 Openfire插件加载流程图: Openfire的插件管理类Plu

Openfire配置过程,以及与php交互注意事项。

Ben Werdmuller 是一位 Web 策划师和开发人员,他专注于开放源码平台.他是开源社交网络框架 Elgg 的共同创始人和技术带头人.Ben 的博客 http://benwerd.com/. 简介: 实时 web 应用程序是联网的应用程序,带有基于 web 的用户界面,能够及时显示刚刚发布的 Internet 信息.这样的应用程序示例包括社会新闻聚合器和监控工具,它们能够使用来自外部源的数据持续更新.在本教程中,您将创建一个小型通知工具 Pingstream,它使用 PHP 和 Jav