一、前言
前面學(xué)習(xí)了Netty的ByteBuf,接著學(xué)習(xí)ChannelHandler和ChannelPipeline。
二、ChannelHandler和ChannelPipeline
2.1 ChannelHandler
在ChannelPipeline中,ChannelHandler可以被鏈在一起處理用戶邏輯。
1. Channel生命周期
Channel接口定義了一個(gè)簡(jiǎn)單但是強(qiáng)大的狀態(tài)模型,該模型與ChannelInboundHandler API緊密聯(lián)系,Channel有如下四種狀態(tài)。
Channel的生命周期如下圖所示。
當(dāng)狀態(tài)發(fā)生變化時(shí),就會(huì)產(chǎn)生相應(yīng)的事件。
2. ChannelHandler的生命周期
ChannelHandler定義的生命周期如下圖所示。
Netty定義了ChannelHandler的兩個(gè)重要的子類
· ChannelInboundHandler,處理各種入站的數(shù)據(jù)和狀態(tài)的變化。
· ChannelOutboundHandler,處理出站數(shù)據(jù)并允許攔截的所有操作。
3. ChannelInboundHandler接口
下圖展示了ChannelInboundHandler接口生命周期中的方法,當(dāng)接受到數(shù)據(jù)或者其對(duì)應(yīng)的Channel的狀態(tài)發(fā)生變化則會(huì)調(diào)用方法
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26