openfire常见几类插件开发研究与总结
openfire 的插件可以访问所有openfire的API,这给我们的插件实现提供了巨大的灵活性。
以下介绍几类比较常用的插件集成方式:
- 基于源码XMPP协议的插件
比如:IQHandler,常用来自定义XMPP命名空间,来拓展自己需要的功能;
- 基于HTTP访问的Servlet、JSP插件
比如:Servlet插件支持http方式访问,提供了除了XMPP之外的协议,
顺便说一下,openfire的管理后台 http://127.0.0.1:9090就是http方式访问,jetty容器来处理一系列请求的
一、基于源码XMPP协议的插件
1.1、Register a plugin as a Component(组件插件)
Components可以接收一个特定子域(sub-domain)的所有包。比如test_componet.example.com。所以,一个发送给joe@test_componet.example.com的包将被转发给这个 componet. 通过ComponentManager.getInstance().addComponent()添加
1.2、Register a plugin as an IQHandler(IQHandler插件)
1.3、Register a plugin as a PacketInterceptor(Packet拦截器插件)
1.4、PropertyEventListener方式(还没想好)
二、基于HTTP访问的Servlet、JSP插件
抽空会接着写。。。最近在做项目,实在没时间,抱歉~!
2013-10-12
openfire常见几类插件开发研究与总结的更多相关文章
- Android 常见工具类封装
1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...
- Hibernate api 之常见的类(配置类,会话工厂类,会话类)
1:Configuration :配置管理类对象 1.1:config.configure(): 加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cf ...
- 【java】java反射 Field类的研究使用
java反射 Field类的研究使用 user.getClass().getFields() 和 user.getClass().getDeclaredFields(); 的区别是什么?
- Selenium常见报错问题(1)- 先来认识下selenium常见异常类
如果你在跑selenium脚本时,需要某些异常不知道怎么解决时,可以看看这一系列的文章,看看有没有你需要的答案 https://www.cnblogs.com/poloyy/category/1749 ...
- RAC(Reactive Cocoa)常见的类
导入ReactiveCocoa框架 在终端,进入Reactive Cocoa文件下 创建podfile 打开该文件 并配置 use_frameworks! pod 'ReactiveCocoa', ' ...
- JAVA中常见异常类
1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...
- jdk中那些常见的类不能被继承的
对于java中的类,如果是使用final修饰的话,那么这个类就不能够被继承,因为jdk的开发者认为,有一些最基本的类没要必要对开发者开放,如果用户 继承时操作有误,很可能引入很多问题.为了防止用户对基 ...
- UML中常见的类关系你了解吗?
最近老大给我设计了一个微信扫码登录的通过工具包流程图,设计过程中使用了模板模式.面向接口编程等设计思路,让我很享受整个过程:下来我就接触了一下Java的设计模式,很是懵懂,听说这也是要靠经验来喂,才能 ...
- JVM虚拟机Class类文件研究分析
前言 为了研究Class文件,先编写一个最简单的代码: package com.courage; public class T0100_ByteCode01 { } 之所以说最简单,是因为这个类里面任 ...
随机推荐
- ThinkPHP5 配置文件
配置目录 系统默认的配置文件目录就是应用目录(APP_PATH),也就是默认的application下面,并分为应用配置(整个应用有效)和模块配置(仅针对该模块有效). ├─application 应 ...
- 【转载】主成分分析法(PCA)
https://www.jisilu.cn/question/252942 进行维数约减(Dimensionality Reduction),目前最常用的算法是主成分分析法 (Principal Co ...
- quagga源码学习--BGP协议的初始化
quagga支持BGP-4,BGP-4+协议,支持多协议(mpls,isis,ospf等等)以及单播,组播路由的导入和分发. 具体的协议,这里就不附录了,网络上有很多资料,或者RFC. 协议源码的学习 ...
- myeclipse搭建activemq 简单聊天
需要一起交流的请加群qq:200634530
- CentOS下安装netcat
CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态.在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat ...
- C#,一种简单的方式实现滚动鼠标缩放图片,平移
1.缩放 private void ImageShow_Load(object sender, EventArgs e) { pictureBox1.Load(@"E:\SQ1.jpg&qu ...
- 如何修改registry的默认的存储位置
https://github.com/goharbor/harbor/issues/5375 the adminserver only can show the usage of /data, thi ...
- git ssh 生成步骤
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 一 . 设置Git的user name和email: $ git ...
- [LeetCode] 4Sum hash表
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...
- error: expected class-name before '{' token(转)
错误原因 1. 头文件引用的类中,结尾可能少了; ,, 例如:class Cwj{} 忘记了以;结尾哦. 2. 引用的头文件的顺序先后相互冲突:例如:Msg类中包含了#includ ...