@ChannelHandler.Sharable public class ProtobufEncoderNano extends MessageToMessageEncoder<MessageNano>
MessageNano into a
 ByteBuf. A typical setup for TCP/IP would be:
 and then you can use aChannelPipelinepipeline = ...; // Decoders pipeline.addLast("frameDecoder", newLengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4)); pipeline.addLast("protobufDecoder", newProtobufDecoderNano(MyMessage.getDefaultInstance())); // Encoder pipeline.addLast("frameEncoder", newLengthFieldPrepender(4)); pipeline.addLast("protobufEncoder", newProtobufEncoderNano());
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);
 }
 ChannelHandler.Sharable| 构造器和说明 | 
|---|
ProtobufEncoderNano()  | 
| 限定符和类型 | 方法和说明 | 
|---|---|
protected void | 
encode(ChannelHandlerContext ctx,
      MessageNano msg,
      java.util.List<java.lang.Object> out)
Encode from one message to an other. 
 | 
acceptOutboundMessage, writebind, close, connect, deregister, disconnect, flush, readensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitexceptionCaught, handlerAdded, handlerRemovedprotected void encode(ChannelHandlerContext ctx, MessageNano msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
MessageToMessageEncoderencode 在类中 MessageToMessageEncoder<MessageNano>ctx - the ChannelHandlerContext which this MessageToMessageEncoder belongs tomsg - the message to encode to an other oneout - the List into which the encoded msg should be added
                      needs to do some kind of aggregationjava.lang.Exception - is thrown if an error occurs