《Netty》从零开始学netty源码(二十八)之ChannelPipeline的active与read

fireChannelActive

当channel绑定端口后状态变为active,此时会触发active事件并传播到pipeline中的handlers,handlers接到通知后会进行处理,源码如下:
《Netty》从零开始学netty源码(二十八)之ChannelPipeline的active与read_第1张图片

active事件的传播方向是从头结点传播到尾节点,当传播结束后会判断channel是否配置了自动读取信息,如果配置了则开始读取信息,源码如下:
《Netty》从零开始学netty源码(二十八)之ChannelPipeline的active与read_第2张图片

read

当channel状态变为active后就可以开始读取信息了,因为read方法是在ChannelOutboundHandler方法定义的,所以传播的时候需要过滤掉不是outbound类型的handlers,read的源码过程如下:
《Netty》从零开始学netty源码(二十八)之ChannelPipeline的active与read_第3张图片

read方法还没有真的获取到channel的信息,头结点的read方法才开始真正的读取信息,信息读取完毕后会调用fireChannelRead方法才开始处理读取到的信息。

你可能感兴趣的:(Netty,netty)