ChannelPipeline,ChannelHandler和ChannelHandlerContext

163 阅读1分钟

channelPipeline.png

ChannelPipeline, ChannelHandler和ChannelHandlerContext形成如上图的结构,

  • 一个ChannelPipeline由多个ChannelHandlerContext形成双向链表
  • 每一个ChannelHandler被一个ChannelHandlerContext封装
  • ChannelHandler的每个方法,均持有一个ChannelHandlerContext,ChannelHandler通过ChannelHandlerContext形成链式调用
public class MyInboundHandler extends {@link ChannelInboundHandlerAdapter} {
     {@code @Override}
     public void channelActive({@link ChannelHandlerContext} ctx) {
         System.out.println("Connected!");
         ctx.fireChannelActive();
     }
 }
  • ChannelHandler有2个子接口ChannelInboundHandlerChannelOutboundHandler 一个代表请求从外部进入netty内部,如典型的socket的读,一个代表将内部的数据通过socket写出到对端的socket,如典型的socket的写

channelHandler.png