一、编码器的概念
编码器是ChannelOutboundHandler出站处理器的实现类。一个编码器将出站对象编码之后,编码后数据将被传递到下一个ChannelOutboundHandler出站处理器,进行后面出站处理。由于最后只有ByteBuf才能写入到通道中去,因此可以肯定通道流水线上装配的第一个编码器一定是把数据编码成了ByteBuf类型。
二、MessageToByteEncoder编码器
MessageToByteEncoder的功能是将一个Java POJO对象编码成一个ByteBuf数据包。
public class Integer2ByteEncoder extends MessageToByteEncoder<Integer> {
@Override
public void encode(ChannelHandlerContextctx, Integer msg, ByteBuf out)
throws Exception {
out.writeInt(msg);
Logger.info("encoder Integer = " + msg);
}
}
三、 MessageToMessageEncoder编码器
将字符串的所有数字提取出来。
//...
public class String2IntegerEncoder extends MessageToMessageEncoder<String> {
@Override
protected void encode(
ChannelHandlerContext c, String s, List<Object>