解碼器抽象的解碼過程
??Netty里的解碼通過抽象類ByteToMessageDecoder進行統一規劃。ByteToMessageDecoder繼承了ChannelInboundHandlerAdapter,解碼器也是一個ChannelHandler下面是ByteToMessageDecoder解碼的過程
ByteToMessageDecoder解碼流程
-
累加字節流過程如下圖:
-
調用子類的decode方法進行解碼,代碼如下:
-
將解析到的ByteBuf向下傳播
常用的解碼器
-
固定長度的解碼器(FixedLengthFrameDecoder):解碼效果如下圖:
- 行解碼器
行解碼器是根據"/n"或者"/r/n"來進行解碼的,LineBasedFrameDecoder類包括如下重要的參數