org.jboss.netty.handler.codec.protobuf
类 ProtobufDecoder
java.lang.Object
org.jboss.netty.handler.codec.oneone.OneToOneDecoder
org.jboss.netty.handler.codec.protobuf.ProtobufDecoder
- 所有已实现的接口:
- ChannelHandler, ChannelUpstreamHandler
@ChannelHandler.Sharable
public class ProtobufDecoder
- extends OneToOneDecoder
Decodes a received ChannelBuffer
into a
Google Protocol Buffers
Message
and MessageLite
. Please note that this decoder must
be used with a proper FrameDecoder
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:
ChannelPipeline
pipeline = ...;
// Decoders
pipeline.addLast("frameDecoder",
new LengthFieldBasedFrameDecoder
(1048576, 0, 4, 0, 4));
pipeline.addLast("protobufDecoder",
new ProtobufDecoder
(MyMessage.getDefaultInstance()));
// Encoder
pipeline.addLast("frameEncoder", new LengthFieldPrepender
(4));
pipeline.addLast("protobufEncoder", new ProtobufEncoder
());
and then you can use a MyMessage
instead of a ChannelBuffer
as a message:
void messageReceived(ChannelHandlerContext
ctx, MessageEvent
e) {
MyMessage req = (MyMessage) e.getMessage();
MyMessage res = MyMessage.newBuilder().setText(
"Did you say '" + req.getText() + "'?").build();
ch.write(res);
}
构造方法摘要 |
ProtobufDecoder(com.google.protobuf.MessageLite prototype)
Creates a new instance. |
ProtobufDecoder(com.google.protobuf.MessageLite prototype,
com.google.protobuf.ExtensionRegistry extensionRegistry)
|
从类 java.lang.Object 继承的方法 |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ProtobufDecoder
public ProtobufDecoder(com.google.protobuf.MessageLite prototype)
- Creates a new instance.
ProtobufDecoder
public ProtobufDecoder(com.google.protobuf.MessageLite prototype,
com.google.protobuf.ExtensionRegistry extensionRegistry)