我怎么知道在使用Protocol Buffers库时我收到了什么消息?

时间:2010-11-09 16:26:13

标签: protocol-buffers

似乎我不了解Protocol Buffers的简单内容,但这对我和我的真实用例来说是非常重要的问题。

在阅读有关协议缓冲区的文档时,我不明白如何知道您应该从流中解码哪条消息?有关某些已定义消息的所有示例,但如果您已定义了几个完全不同的消息,并且您希望在两个进程之间发送这些消息 - 您如何知道刚刚收到的消息?

或者协议缓冲区可能不会尝试解决此问题并将此问题留给另一个抽象级别?

或许我应该将消息打包成这样的结构:

message wrapper {
   required string message_name = 1;
   string packed_message = 2; 
}

然后我应该分两个阶段解码消息:首先获取message_name,然后在第二阶段解码真正的打包消息,不应该吗?

1 个答案:

答案 0 :(得分:4)