为什么需要二次解码
因为一次解码的结果是字节,需要和项目中所使用的对象做转换,方便使用,这层解码器可以称为“二次解码器”。相应的,对应的编码器是为了将java 对象转化成字节流方便传输存储。
一次编码器:ByteToMessageDecoder
- io.netty.buffer.ByteBuf(原始数据流) -> io.netty.buffer.ByteBuf(用户数据)
二次解码器:MessageToMessageDecoder
- io.betty.buffer.ByteBuf(用户数据) ->Java Object
常用的二次编解码方式
- Java序列化
- Marshing
- XML
- JSON
- MEssagePAck
- Protobuf
- 其他
选择编解码方式的要点
- 空间:编码后占用空间