zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Struts2配置文件讲解
    分布式与集群的区别
    ANDROID中FRAGMENT的两种创建方式
    一个让echarts中国地图包含省市轮廓的技巧
    图解Spark API
    对NP问题的一点感想
    laravel框架容器管理的一些要点
    RedisRepository分享和纠错
    javascript中对数据文本格式化的思考
    LazyMan深入解析和实现
  • 原文地址:https://www.cnblogs.com/alighie/p/9579981.html
Copyright © 2011-2022 走看看