簡體   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