@ChannelHandler.Sharable public class ProtobufDecoder extends MessageToMessageDecoder<ByteBuf>
ByteBuf into a
Google Protocol Buffers
Message and MessageLite. Please note that this decoder must
be used with a proper ByteToMessageDecoder such as ProtobufVarint32FrameDecoder
or LengthFieldBasedFrameDecoder if you are using a stream-based
transport such as TCP/IP. 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", newProtobufDecoder(MyMessage.getDefaultInstance())); // Encoder pipeline.addLast("frameEncoder", newLengthFieldPrepender(4)); pipeline.addLast("protobufEncoder", newProtobufEncoder());
MyMessage instead of a ByteBuf
as a message:
void channelRead(ChannelHandlerContext ctx, MyMessage req) {
MyMessage res = MyMessage.newBuilder().setText(
"Did you say '" + req.getText() + "'?").build();
ch.write(res);
}
ChannelHandler.Sharable | Constructor and Description |
|---|
ProtobufDecoder (MessageLite prototype)
Creates a new instance.
|
ProtobufDecoder (MessageLite prototype,
ExtensionRegistry extensionRegistry) |
ProtobufDecoder (MessageLite prototype,
ExtensionRegistryLite extensionRegistry) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
decode (ChannelHandlerContext ctx,
ByteBuf msg,
java.util.List<java.lang.Object> out)
Decode from one message to an other.
|
acceptInboundMessage, channelRead channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered ensureNotSharable, handlerAdded, handlerRemoved, isSharable clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waithandlerAdded, handlerRemoved public ProtobufDecoder(MessageLite prototype)
public ProtobufDecoder(MessageLite prototype, ExtensionRegistry extensionRegistry)
public ProtobufDecoder(MessageLite prototype, ExtensionRegistryLite extensionRegistry)
protected void decode(ChannelHandlerContext ctx, ByteBuf msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
MessageToMessageDecoder decode in class MessageToMessageDecoder<ByteBuf>ctx - the ChannelHandlerContext which this MessageToMessageDecoder belongs tomsg - the message to decode to an other oneout - the List to which decoded messages should be addedjava.lang.Exception - is thrown if an error occursCopyright © 2008–2018 The Netty Project. All rights reserved.