天天看點

openfire插件開發的四種方式

openfire 的插件可以通路所有openfire的API。這給我們的插件實作提供了巨大的靈活性。以下提供了四種比較常用的插件內建方式。 1、Register a plugin as a Component。 Components可以接收一個特定子域(sub-domain)的所有包。比如test_componet.example.com。是以,一個發送給[email protected]_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()方法中将注冊的監聽登出。

繼續閱讀