Netty学习(八)介绍出入站

326 阅读1分钟

一、介绍出入站

上图来说明这个概念:

  • 出入站是一个相对的概念。例如:客户端请求到服务器时,站在客户端看,就是出战;站在服务器端看,就是入站。
  • Netty中出入站的实现由下面的这个图说明:

  • 我们在设置handler去进行业务操作时,inHandler和outHandler的特点如下:

    • 先设置的inHandler先调用;先设置的outHandler后调用
    • 有inHandler和outHandler组成的混合的handler处理链,如何去调用和传递结果,如下图的处理链做如下说明:(1)如果是一个入站操作,会先后调用3、5并将结果前后传递;(2)如果是一个出站操作,会先后调用4、2、1并将结果前后传递;(3)入站操作时,如果在3出使用writeandflush方法返回结果时,调用的出站handler为2、1
    1、out -- 2、out -- 3、in -- 4、out -- 5、in 
    

二、编解码

上面介绍了出入站的概念,下面就可以对编解码进行说明。

Netty中的编解码与出入站类似,也是一个相对的概念。还是用下面的图说明:如果客户端请求到服务器端,在客户端处就要先进行编码,然后在服务端处进行解码;反过来时也类似。

Netty常用的编解码器:

名称用途
ByteToMessageCodec解码器
MessageToByteEncoder编码器
HttpObjectDecoderhttp的解码器