openfire插件開發的四種方式

openfire 的插件可以訪問所有openfire的API。這給我們的插件實現提供了巨大的靈活性。以下提供了四種比較常用的插件集成方式。
1、Register a plugin as a Component。 Components可以接收一個特定子域(sub-domain)的所有包。比如test_componet.example.com。所以,一個發送 給joe@test_componet.example.com的包將被轉發給這個componet.
2、Register a plugin as an IQHandler。IQ handlers相應包中特定的元素名或命名空間。下面的代碼展示瞭如何註冊一個IQHandler.
IQHandler myHandler = new MyIQHander();
IQRouter iqRouter = XMPPServer.getInstance().getIQRouter();
iqRouter.addHandler(myHandler);
3、Register a plugin as a PacketInterceptor。 這種方式可以接收系統傳輸的所有包,並可以隨意的丟棄它們。例如,一個interceptor 可以攔截並丟棄所有含有不健康信息的消息,或者將它們報告給系統管理員。
4、使用JiveGlobals.getProperty(String) 和 JiveGlobals.setProperty(String, String) 方法將我們的插件設置爲openfire的一個全局屬性。通過實現org.jivesoftware.util.PropertyEventListener方法可以將我們的 插件做成一個屬性監聽器監聽任何屬性的變化。通過 PropertyEventDispatcher.addListener(PropertyEventListener)方法可以註冊監聽。要注意的一 點是,一定要在destroyPlugin()方法中將註冊的監聽註銷。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章