IQHander插件
注意事项
我们如果要做自己的IQ包处理,可以自定义类如TestTemplateMethodHandler:class TestTemplateMethodHandler extends IQHandler。
以下需要注意:
- 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;}
- 在public IQ handlerIQ(IQ packet)方法中写上自己想要对丢进来的IQ包做什么样的处理(注意IQ包是基于问答形式的,所以应该有IQ包的reply)。
- 继承IQHandler的插件,需要注册到IQRouter中去。
实现过程
- 创建一个类,继承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; }}
- 注册继承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