1. 程式人生 > >Netty學習過程筆記

Netty學習過程筆記

1:傳入的byteBuf時需要顯性的釋放,否則會造成緩衝區滿,如果使用write/writeAndFlush,就不用釋放,因為寫入操作隱式的呼叫了釋放

2:在Netty中使用Http協議時,大多時候需要在Server的通道配置ChannelPipeline中加上Http請求訊息解碼器HttpObjectAggregator,這樣就可以把很多訊息轉換成單一的FullRequest或FullResponse物件,那麼為什麼一個Http請求會有很多訊息,它不是一個整體嗎?這是因為在Netty中,一個Http請求可能被分為很多部分,如下圖.

而且這些一個請求中的訊息,會觸發多次Handler的channelRead,可以從下圖看到一次請求會產生不確定數目的連線,但是這些連線的channel地址都是一樣的,這就說明HttpObjectAggregator將這些訊息都聚合到一個channel中