上面的文章已经说过了decoder,它的用处是将读取的byte数据转化为用户自己定义的数据类型
这一篇文章要说的encoder,它的作用与前面提到的decoder就相反了,用于将用户定义的类型转化为byte类型,这样才能通过channel发送出去。。。
我们还是先来看看它的继承体系吧:
可以看到它继承自messageadapter,这种类型我们在前面已经有过说明,adapter的作用就是比较粗糙的实现方法,用户可以继承它然后重写自己感兴趣的方法,
而且在前面我们知道在pipeline上面调用write方法的时候,netty会从pipeline的后面向前寻找合适的outboundhandler用于处理要写的数据,而且是先将数据存放到handler的buffer里面,真正的写数据则是调用flush方法实现的。。。
首先我们要来看看这里将会调用的flush方法: