这是我的实现,对吗?
public ChannelPipeline getPipeline() throws Exception
{
ChannelPipeline p = pipeline();
pipeline.addLast("decoder", new HttpRequestDecoder());
p.addLast("frameDecoder", new ProtobufVarint32FrameDecoder());
p.addLast("protobufDecoder", new ProtobufDecoder(LocalTimeProtocol.Locations.getDefaultInstance()));
pipeline.addLast("encoder", new HttpResponseEncoder());
p.addLast("frameEncoder", new ProtobufVarint32LengthFieldPrepender());
p.addLast("protobufEncoder", new ProtobufEncoder());
p.addLast("handler", new LocalTimeServerHandler());
return p;
}
它不起作用。 您必须编写一个处理程序,该处理程序获取HTTP请求的内容并将请求的内容(ChannelBuffer(转换为protobuf消息。 下游也需要做类似的工作。