Tigase學習筆記整理
1、主要分三部分組成:
1、組件(component,tigase的核心)
2、Plugin(插件,被sessionManager組件和C2S組件加載)
3、連接器(認證連接器和用戶數據連接器)
2、 組件接口(Component Interface)
1、tigase.server.ServerComponent:頂級Component接口,所有的component都必須實現它
2、tigase.server.MessageReceiver:繼承ServerComponent接口,如果自定義的組件想像SessionManager一樣接收數據包就必須實現它
3、tigase.conf.Configurable:實現此接口的類都必須是可配置的,每個實現此接口的類將在運行期被加載,在運行期改變配置將會非常有用
4、tigase.disco.XMPPService:繼承該接口的Objects則能夠回應ServiceDiscovery請求
5、tigase.stats.StatisticsContainer:Objects繼承該類型可以返回運行期的統計結果,任何該類型的Object或者實現該接口的類都可以吧統計結果展示給它允許的用戶
抽象類:
1、tigase.server.AbstractMessageReceiver:實現了4個基本接口,(ServerComponent, MessageReceiver, Configurable and StatisticsContainer),該類采用自身的線程管理內部數據來避免死鎖,他提供事件驅動方法processPacket(Packet packet)來處理數據,你必須在自己的組件中實現該方法,如果改組需要發送或者接收數據包就必須調用boolean addOutPacket(Packet packet)
2、tigase.server.ConnectionManager:擴展AbstractMessageReceiver的抽象類,此類事用于管理網絡連接,如果你的組件需要直接發送和接收來自網絡的數據,你就應該實現這個基類,它負責與網絡相關的一切事物,I / O操作,重新連接,監聽Socket,連接等。如果你繼承這個類你就必須處理消息的來源,如果來自MessageRouter 那么就調用abstract void processPacket(Packet packet);方法,如果消息來自網絡連接,則abstract Queue processSocketData(XMPPIOService serv);將會被調用。
3、 Plugin接口
目前Tigase已實現的plugin都位于tigase.xmpp.impl包。你可以把下列代碼作為示例代碼。目前有3種類型的插件接口,全部定義在tiagse.xmpp包。
3.1、XMPPProcessorIfc :最重要也是最基本的插件,這是處理stanzas最基本的模型,他負責接收數據包,并進行處理然后返回處理結果
XMPPPreprocessorIfc:負責消息包的預處理
XMPPPostprocessorIfc:負責最終數據包的傳遞
圖 3-2
4、 Connector:從網絡讀取的數據都是使用tigase.io包中的代碼作為二進制讀取的,然后通過tigae.net包轉換為字符,然后又通過tigase.xml把字符轉換為xml結構。所有在服務端進項交換的數據都是使用XMPP協議定義的xml文件。每一個節點都存儲在tigase.xml.Element對象中,每一個Element都包含多個子元素和一系列屬性。為了簡化必要的數據常見的操作元素被封裝在tigase.server.Packet中,它提供了元素最常見的操作
歡迎加入Tigase交流群:207021702