Class ProtobufEncoderNano

java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelOutboundHandlerAdapter
io.netty.handler.codec.MessageToMessageEncoder<com.google.protobuf.nano.MessageNano>
io.netty.handler.codec.protobuf.ProtobufEncoderNano
All Implemented Interfaces:
ChannelHandler, ChannelOutboundHandler

@Sharable public class ProtobufEncoderNano extends MessageToMessageEncoder<com.google.protobuf.nano.MessageNano>
Encodes the requested Google Protocol Buffers MessageNano into a ByteBuf. A typical setup for TCP/IP would be:
ChannelPipeline pipeline = ...;
// Decoders
pipeline.addLast("frameDecoder",
 new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4));
pipeline.addLast("protobufDecoder",
 new ProtobufDecoderNano(MyMessage.getDefaultInstance()));
// Encoder
pipeline.addLast("frameEncoder", new LengthFieldPrepender(4));
pipeline.addLast("protobufEncoder", new ProtobufEncoderNano());
and then you can use a MyMessage instead of a ByteBuf as a message:
void channelRead(ChannelHandlerContext ctx, Object msg) {
 MyMessage req = (MyMessage) msg;
 MyMessage res = MyMessage.newBuilder().setText(
 "Did you say '" + req.getText() + "'?").build();
 ch.write(res);
}
  • Constructor Details

    • ProtobufEncoderNano

      public ProtobufEncoderNano()
  • Method Details