mina 使用手記 1

1.Apache Mina 是一個高性能的基礎網絡構架平臺,構建在java NIO的基礎上

2.Mina使用了SLF4J做爲日誌記錄器,全稱Simple Logging Facade for Java,它是一個日誌門面,只負責爲客戶端提供應用接口,實際的日誌記錄由Log4j/JUL等日誌記錄器實現。如下圖所示:

3.Mina主要有IoConnector,IoAccepter,IoSession,IoSessionConfig,IoHandler,IoFilter,IoFuture,EventListener等對象組成

4.IoConnector實現客戶端的連接功能,IoAccepter實現服務端的接收功能,它們都繼承自IoService

5.IoSession爲客戶端和服務端的一個會話,每一個會話都包括會話的建立,打開,註銷等功能

6.IoSession中還包括髮送或接收到的數據,以及會話上觸發相應事件的偵聽器

7.而IoSession的相關配置由IoSessionConfig實現

8.IoHandler爲數據處理器,在此對象中可以對接收到的數據進行具體的業務處理,也可以決定發送數據成功後是否進行其他的操作。很類似VB當中的事件處理。

9.IoFilter決定着在IoAccepter接收到原始數據之後,IoHandler進行業務處理之前,或反過來的對數據的中間處理過程

10.第一個IoFilter可以實現一個子功能,比如LoggingFilter可以實現對接收或發送數據的進行日誌處理,其中LoggingFilter根據加載的具體類庫動態判斷具體的日誌操作

11.在IoFilter中,也可以進行協議或編碼解碼處理,可以支持byte/txt/http/ftp/xml等各種方法

12.在實際的實現 中,多個過濾器由IoFilterChain進行管理,類似一個管道,原始數據從管道的一端進入,過濾層層過濾處理,最終得到需要的數據,交給IoHandler進行業務處理

13.IoFuture指定IO操作包括connect/read/write等的未來狀態

14.EventListener事件偵聽器,一般會加載到IoSession上面,進行事件監聽。比如對接收數據的事件觸發後,會在偵聽器中調用IoHandler的MessageReceived()方法來處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章