Advertisement

Netty中的ChannelHandlerContext.writeAndFlush与其 channel写的区别

阅读量:

1、ctx.writeAndFlush()方法的事件传播路径

ctx.writeAndFlush()方法在Pipeline链中,以当前节点为起点,向前定位首个Outbound类型的Handler,并将对象传递至该节点。若该对象确定无需继续经过其他Outbound类型的Handler进行处理,则采用该方法完成数据的发送操作。

2、ctx.channel().writeAndFlush()方法的事件传播路径

ctx.channel().writeAndFlush()方法在Pipeline链中,会从最后一个Outbound类型的Handler出发,将对象依次向前传递。若确定所创建的对象需经过后续Outbound类型的Handler进行处理,则应使用该方法。
当某个Inbound类型的Handler完成相关逻辑处理后,调用ctx.channel().writeAndFlush()方法时,对象将从Pipeline链中最后一个Outbound类型的Handler开始,依次向前传播。相较于ctx.writeAndFlush()方法,其传播路径更为复杂,具体流程如图所示。

![]

全部评论 (0)

还没有任何评论哟~