编解码器
数据在网络中传输时都是二进制字节码数据,在发送数据时需要编码,接收数据时需要解码,所以就需要解码器(decoder)和编码器(encoder)来完成该操作
encoder编码器是将指定的消息对象转为二进制流,负责处理出站数据;decoder解码器是将二进制流转为指定的消息对象,负责处理入站数据
Netty本身提供了一些编解码器
- StringEncoder、StringDecoder 对字符串数据进行编解码
- ObjectEncoder、ObjectDecoder 对java对象进行编解码
Netty本身提供的ObjectEncoder、ObjectDecoder 底层使用的是Java序列化技术,而Java序列化技术本身效率不高,序列化后太大,且无法跨语言,所以可以使用Protobuf
编解码器本身也是ChannelHandler