即从io.netty.buffer. ByteBuf
( 原始数据流) =》 io.netty.buffer .ByteBuf
( 用户数据)
但是在实际业务项目中,除可选的的压缩解压缩,还需一层解码,因为一次解码的结果是字节,需要和项目中所使用的对象做转化,方便使用,这层解码器可以称为“二次解码器”,相应的对应编码器是为了将Java对象转化成字节流方便存储或传输。
于是有了二次解码器:MessageToMessageDecoder
io.netty.buffer.ByteBuf
( 用户数据) =》 Java Object
合并1次解码(解决粘包、半包)和2次解码( 解决可操作问题) ? 可以,但不建议:
其中以谷歌的Protobuf最为知名。