Mina框架資料傳送流程

2021-07-03 04:08:49 字數 1223 閱讀 7259

mina框架經常用,但是具體的細節還是摸不清楚。稍稍深入了一下**,看了一下資料流程,在此做一些記錄。

先看一下大致的流程。詳細的說明網上很多,比如官方**:

部分層的細節也沒有深究。主要看了一下iofilter

資料報傳送流程

session.write(),這個函式應該是filter之前的業務。eclipse單步除錯看了一些資料流的傳遞流程。

傳送流程裡,filter可能會有編碼過程,大概把物件或者別的什麼轉換成iobuffer,然後將iobuffer放入protocolencoderoutput

相關的messagequeue中

【自己寫的**中用的是:protocolcodecfilter】

protocolcodecfilter**,大概就是編碼完了,然後就將writerequest傳送到下乙個filter去了。

最終會找到乙個終極filter,headfilter。

最終呼叫的是niosession咯,

niosession具體是什麼我不是很清楚。

大概每個session會繫結乙個processor,然後放入佇列,然後由乙個abstractpollingioprocessor統一呼叫,然後getnioprocessor,getchannel等等就傳送出去了。

MINA 框架簡介

1。mina 框架簡介 2。iosession session可以理解為伺服器與客戶端的特定連線,該連線由伺服器位址 埠以及客戶端位址 埠來決定。客戶端發起請求時,指定伺服器位址和埠,客戶端也會指定或者根據網路路由資訊自動指定乙個位址 自動分配乙個埠。這個位址 埠對構成乙個session。sessi...

Mina框架研究(3)

不堪回首 junotes filters iofilter 是mina框架中乙個核心的部分,如下圖,對間於ioservice和iohandle之間,用於過濾所有的i o事件和請求,其扮演的角色就像j2ee中的servlet。mina提供不少現成的過濾器 1 loggingfilter 日誌過濾器,用...

Mina執行流程解析(一)

一 客戶端 例子 初始化客戶端的連線類 ioconnector connector new niosocketconnector 設定超時時間 connector.setconnecttimeoutmillis 5000 獲取當前的過濾鏈,並且在末尾新增乙個新的過濾器 connector.getfi...