1
有什麼方法可以設置多個protobufEncoder/protobufDecoder嗎?Protobuf和Pipeline問題
讓我解釋一下我的疑難問題具有將從 客戶端向服務器發送一個命令,服務器獲取指令並做根據 到command.Now響應(「答案」)的一些工作該服務器可以是: 字符串的長度,或者是整數平方(順序不確定)
我的問題是,現在我能做些什麼,該客戶端可以從服務器接收至少兩個 不同的反應?兩者都是使用Protobuf和 進行「編碼」,我需要做的是服務器可以發送至少兩個不同的 響應?也都是用Protobuf「編碼」。兩者都是帶有protobuf的「解碼器」。
netty的ProtobufDecoder設置兩個不同的protobufEncoder /解碼器是不可能的。
讓我們來看看下面的網狀例如,解碼器只能接收解碼器對象
LocalTimeServerPipelineFactory:
public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline p = pipeline();
p.addLast("frameDecoder", new ProtobufVarint32FrameDecoder());
p.addLast("protobufDecoder", new ProtobufDecoder(LocalTimeProtocol.Locations.getDefaultInstance()));
p.addLast("frameEncoder", new ProtobufVarint32LengthFieldPrepender());
p.addLast("protobufEncoder", new ProtobufEncoder());
p.addLast("handler", new LocalTimeServerHandler());
return p;
}
在此先感謝和最誠摯的問候。
石英
如果我用包絡協議包裝protobuf消息。例如: 。添加一個編碼器和解碼器,其目的是爲protobufEncoder和protobufDecoder添加一個消息頭。 感覺如何? –
zhanghua
2012-08-17 07:17:36