Netty事件传播机制

文章目录


源码

在这里插入图片描述

在这里插入图片描述

栗子

ch.pipeline().addLast(new InboundHandler1());  
ch.pipeline().addLast(new InboundHandler2()); 
ch.pipeline().addLast(new OutboundHandler1());  
ch.pipeline().addLast(new OutboundHandler2());

链表中的顺序为head->in1->in2->out1->out2->tail

输出:

InboundHandler1 
InboundHandler2 
OutboundHandler2
OutboundHandler1

一次请求过来,先read,再write,根据顺序

read : in1 in2
write: out2 out1

所以最后的顺序就是 in1 in2 out 2 out1

在这里插入图片描述

在这里插入图片描述

拾遗


由head开始的往下传播的事件
fireChannelActive
fireChannelInactive
fireExceptionCaught
fireChannelRead
fireChannelReadComplete
…等等

由tail开始的往上传播的事件
bind
connect
write
flush
…等等


InboundHandler关心的事件:
MASK_EXCEPTION_CAUGHT
MASK_CHANNEL_REGISTERED
MASK_CHANNEL_ACTIVE
MASK_CHANNEL_READ
MASK_CHANNEL_READ_COMPLETE
…等等

OutboundHanlder关心的事件:
MASK_EXCEPTION_CAUGHT
MASK_BIND
MASK_CLOSE
MASK_READ
MASK_WRITE
MASK_FLUSH
…等等

发布了555 篇原创文章 · 获赞 4044 · 访问量 284万+

猜你喜欢

转载自blog.csdn.net/dataiyangu/article/details/105370323
今日推荐