1. 程式人生 > >openfire插件開發之IQHander

openfire插件開發之IQHander

static add ger 組管理 什麽 lin 不同 刪除 online

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