我正在编写一个NUL-终止JSON消息的编码器,以便在消息碎片化时对其进行解码.
我发现这个样品- > 点击这里ByteBuf.retain()被称为到底写现有ByteBuf到输出.他们为什么这样做,为什么需要呢?
这是我的编码器:
public class FrameEncoder extends MessageToMessageEncoder<ByteBuf> {
@Override
protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
out.add(msg.retain());
out.add(ctx.alloc().buffer(1).writeByte(NUL));
}
}
Run Code Online (Sandbox Code Playgroud)