繁体   English   中英

ChannelInboundHandlerAdapter和ChannelOutboundHandlerAdapter是否影响netty4中正在运行的编码器和解码器的顺序?

[英]Does ChannelInboundHandlerAdapter and ChannelOutboundHandlerAdapter effects the sequence of running encoder and decoder in netty4?

我正在使用netty4实现编码器和解码器。

当我扩展ChannelInboundHandlerAdapter类型的解码器和ChannelOutboundHandlerAdapter类型的编码器时,它的运行顺序应该是什么?

  1. 首先是编码器,然后是解码器。
  2. 首先是解码器,然后是编码器。

另外,ChannelOutboundHandlerAdapter和ChannelInboundHandlerAdapter如何影响读取(I / O)和写入(I / O),应该在哪里使用?

请注意以下几点:

ChannelInboundHandler处理各种入站数据和状态更改ChannelOutboundHandler处理出站数据并允许拦截所有操作

例如,当一条消息传入时(即您正在从套接字读取数据时),将通知ChannelInboundHandler 此外,还会通知状态更改(如writabilityChanged,channelActive和Inactive事件)。

当您将数据写入通道时,将会通知ChannelOutboundHandler 通道上的连接,断开连接和读取等呼叫也将得到通知。

要实现编码器和解码器,您可以在网络中扩展预定义的解码器和编码器,例如ByteToMessageDecoderMessageToMessageDecoderMessageToByteEncoderMessageToMessageEncoder因为这将简化您的任务。

关于解码器和编码器的执行顺序,请这样考虑:当消息通过套接字到达您的应用程序时,它将以字节流的形式出现,那么您将必须对其进行解码以进行处理。 在向外部各方发送消息时,必须先将其编码为字节,然后再将其写入套接字。 编码器和解码器的执行顺序取决于此过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM