openfire插件开发之IQHander

IQHander插件

注意事项

我们如果要做自己的IQ包处理,可以自定义类如TestTemplateMethodHandler:class TestTemplateMethodHandler extends IQHandler。

以下需要注意:

  1. IQ handlers相应包中特定的元素名或命名空间,在public IQHandlerInfo getInfo()方法中写上自己想要注册的元素名及命名空间。如:
private IQHandlerInfo info;private String HISTORY_XMLNS = "http://weaver.com.cn/history" ;?public HistoryIQHandle() {    super("HistoryIQHandle");    info = new IQHandlerInfo("query", HISTORY_XMLNS);    }@Overridepublic IQHandlerInfo getInfo() {    return info;}
  1. 在public IQ handlerIQ(IQ packet)方法中写上自己想要对丢进来的IQ包做什么样的处理(注意IQ包是基于问答形式的,所以应该有IQ包的reply)。
  2. 继承IQHandler的插件,需要注册到IQRouter中去。

实现过程

  1. 创建一个类,继承IQHandler类,下面是一个IQHander框架

    public class TestIQHander extends IQHandler {?    private static final Logger Log = LoggerFactory.getLogger(TestIQHander.class);    private IQHandlerInfo info;    //这里实现不同的iq接口    private String ISONLINE_XMLNS = "http://weaver.com.cn/isOnline";?    public TestIQHander(String moduleName) {        super("TestIQHander");        info = new IQHandlerInfo("query", ISONLINE_XMLNS);    }?    @Override    //这里实现自己的逻辑    public IQ handleIQ(IQ packet) throws UnauthorizedException {        return null;    }?    //这里必须返回info    @Override    public IQHandlerInfo getInfo() {        return info;    }}
  2. 注册继承IQHander的到IQrouter中,可以在其他插件初始化时注册.
     IQRouter iqRouter = XMPPServer.getInstance().getIQRouter(); TestIQHander test = new TestIQHander();        iqRouter.addHandler(test);

iq接口类型

前台请求的iqiq接口有如下类型:

1. 简要描述

  • 创建群组接口
请求xmlns:
  • http://weaver.com.cn/group
2. 简要描述:
  • 将成员列表中成员添加到群组中
请求xmlns:
  • http://weaver.com.cn/group
3. 简要描述:
  • 删除群成员接口
请求xmlns:
  • http://weaver.com.cn/group
4. 简要描述:
  • 修改群组名称接口
请求xmlns:
  • http://weaver.com.cn/group
5. 简要描述:
  • 用户退出群组接口
请求xmlns:
  • http://weaver.com.cn/group
简要描述:
  • 设置群组icon图标接口
6. 请求xmlns:
  • http://weaver.com.cn/group
7. 简要描述:
  • 转让群主接口
请求xmlns:
  • http://weaver.com.cn/group
8. 简要描述:
  • 设置群组管理员接口
请求xmlns:
  • http://weaver.com.cn/group

原文地址:https://www.cnblogs.com/alighie/p/9579981.html

时间: 2024-08-04 02:13:12

openfire插件开发之IQHander的相关文章

基于xmpp openfire smack开发之Android客户端开发[3]

在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前两篇的文章 基于xmpp openfire smack开发之openfire介绍和部署[1] 基于xmpp openfire smack开发之smack类库介绍和使用[2] 1.源码结构介绍 activity包下存放一些android页面交互相关的控制程序,还有一个些公共帮助类 db包为sqlite

插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑

请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52258434 在了解系统的activity,service,broadcastReceiver的启动过程后,今天将分析下360 DroidPlugin是如何预注册占坑的?本篇文章主要分析Activity预注册占坑,Activity占了坑后又是什么时候开始瞒天过海欺骗AMS的?先看下Agenda: AndroidMainfest.xml中概览 Activity中关键方

Eclipse插件开发之TreeViewer

contentprovider在插件开发和RCP(Rich Client Platform)开发中常常被用到,譬如你要创建一个TreeViewer(树形控件)就需要一个ITreeContentProvider,如果要实现一个TableViewer(表控件)就需要一个IStructuredContentProvider,contentprovider主要的作用就是返回当前界面中的数据. 1.内容提供器(ITreeContentProvider) TreeViewer的内容提供器(ITreeCont

插件开发之360 DroidPlugin源码分析(五)Service预注册占坑

请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52264977 在了解系统的activity,service,broadcastReceiver的启动过程后,今天将分析下360 DroidPlugin是如何预注册占坑的?本篇文章主要分析Service预注册占坑,Service占了坑后又是什么时候开始瞒天过海欺骗AMS的?先看下Agenda: AndroidMainfest.xml中概览 Service中关键方法被h

基于xmpp openfire smack开发之openfire介绍和部署[1]

前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn

jQuery插件开发之windowScroll

回首望,曾经洋洋得意的代码现在不忍直视.曾经看起来碉堡的效果现在也能稍微弄点出来.社会在往前发展,人也不得不向前走. 参考于搜狗浏览器4.2版本首页的上下滚动效果.主要实现整个窗口的上下和左右滚动逻辑,还有很多可以拓展的空间.希望大家能多提意见与建议. 代码如下: HTML <!doctype html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-

jQuery插件开发之datalist

HTML5中定义了一种input框很好看的下拉列表--datalist,然而目前它的支持性并不好(万恶的IE,好在你要渐渐退役了...).于是最近更据需求写了一个小型datalist插件,兼容到IE8(IE7应该没多少人用了吧?).实现的具体需求如下: 当被选中的时候(触发blur焦点)(不管是鼠标还是tab键)清空input框并且显示自定义的下拉列表,然后可以用键盘的上下键选择(鼠标当然肯定没理由不可以啦),单击鼠标左键或者enter键将选中的列表的值输入到input框. 具体的实现代码如下:

基于xmpp openfire smack开发之smack类库介绍和使用[2]

http://blog.csdn.net/shimiso/article/details/8816540 关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等. 下面我们写几个程序小例子测试一下. (1)登录操作 [java] view plaincopy PPConnection.DEBUG_ENABLED = true; Acco

转:Eclipse插件开发之TreeViewer

http://www.tuicool.com/articles/e6fmE3R contentprovider在插件开发和RCP(Rich Client Platform)开发中常常被用到,譬如你要创建一个TreeViewer(树形控件)就需要一个ITreeContentProvider,如果要实现一个TableViewer(表控件)就需要一个IStructuredContentProvider,contentprovider主要的作用就是返回当前界面中的数据. 1.内容提供器(ITreeCon