Netty学习笔记

ChannelPipeline的addLast方法将按照顺序进行处理,第一个会先被处理, 如果业务被处理并返回给客户端,将不再进行下一个handler的处理,不然需要调用ChannelHandlerContext的fireChannelRead()方法 将控制权交给下一个handler进行处理。所以最好把第一个做业务分发操作。

ChannelHandlerContext的writeAndFlush()方法是写入数据并且发送数据:writeAndFlush方法方法的原理是执行write()后执行flush()方法。

     参考io.netty.channel.DefaultChannelHandlerContext 的737行

    @Override

    public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) {

        ChannelFuture future = write(msg, promise);

        flush();

        return future;

    }

ChannelHandlerContext的fireChannelRead()方法是把处理权交给下一个业务handler去处理。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理