Netty编解码器
Netty编解码器
1.当Netty发送或者接受一个消息的时候,就将会发生一次数据转换。入站消息会被解码:从字节转换为另一种格式(比如java对象);如果是出站消息,它会被编码成字节。
2.Netty提供了一系列实用的编解码器,他们都实现了ChannelInboundHandler或者ChannelOutboundHandler接口。在这些类中,channelRead方法已经被重写了。当消息入站时,channelRead会被调用,随后它又调用由解码器所提供的decode()方法进行解码,并将已经解码的字节转发给ChannelPipeline中的下一个ChannelInboudHandler。
解码器-ByteToMessage
- 继承图
ByteToMessageDecode是一个抽象类,自定义解码器要继承它,并实现它的抽象方法decode()。
编码器-MessageToByte
netty内部的解码器
LineBasedFrameDecoder:使用行尾控制字符(\n或者\r\n)作为分隔符来解析数据。
DelimiterBasedFrameDecoder:使用自定义的特殊字符作为消息的分隔符。
HttpObjectDecoder:一个HTTP数据的解码器
LengthFieldBasedFrameDecoder:通过指定长度来标识整包信息,这样就可以自动处理粘包和半包消息。