https://www.w3cschool.cn/essential_netty_in_action/oop
- channelRegistered: 註冊。
- channelActive: 活躍狀態,可接收和發送數據。
- channelInactive: 處於非活躍狀態,沒有鏈接到遠程主機。
- channelUnregistered: 已建立但未註冊到一個 EventLoop。
- handlerAdded: 當 ChannelHandler 添加到 ChannelPipeline 調用
- handlerRemoved: 當 ChannelHandler 從 ChannelPipeline 移除時調用
- exceptionCaught: 當 ChannelPipeline 執行拋出異常時調用
ChannelHandler兩個重要的接口:netty
- ChannelInboundHandler : 處理進站數據和全部狀態更改事件。
- ChannelOutboundHandler : 處理出站數據,容許攔截各類操做。
ChannelPipeline 是一系列ChannelHandler的實例,流經一個Channel的事件能夠被ChannelPipeline攔截接口
ChannelHandlerContext表明了ChannelPipeline和ChannelHandler之間的關聯,是ChannelHandler之間信息傳遞的橋樑。生命週期
ChannelPipeline、Channel、ChannelHandler、ChannelHandlerContext之間的關係。事件
- 一、Channel綁定到ChannelPipeline
- 二、ChannelPipeline綁定到包含ChannelHandler的Channel
- 三、ChannelHandler
- 四、當添加ChannelHandler到ChannelPipeline時,ChannelHandlerContext被建立
Channel中信息的傳遞:ip
- Channel或者ChannelPipeline上調用write()方法,會讓整個事件在管道中進行傳遞。
- ChannelHandler之間的數據傳遞則經過ChannelHandlerContext調用方法來實現。
- 事件傳遞給 ChannelPipeline 的第一個 ChannelHandler
- ChannelHandler 經過關聯的 ChannelHandlerContext 傳遞事件給 ChannelPipeline 中的 下一個
- ChannelHandler 經過關聯的 ChannelHandlerContext 傳遞事件給 ChannelPipeline 中的 下一個