openfire插件开发之IQHander

Posted alighie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}
@Override
public 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





































以上是关于openfire插件开发之IQHander的主要内容,如果未能解决你的问题,请参考以下文章

(转)openfire插件开发 基于web的插件开发

Openfire/xmpp : IntelliJ IDEA导入openfire插件开发

如何为 Openfire 插件创建我自己的日志记录配置

(转)openfire插件开发通过http方式向openfire客户端发信息

(转)OpenFire源码学习之十五:插件开发

openfire主要插件介绍