Protocol buffers Protobuf包声明

Protocol buffers Protobuf包声明,protocol-buffers,Protocol Buffers,我有一个带有一些消息定义的原型文件。我在proto文件的开头声明了package com.myorganization。例如,该文件中有一个消息声明。如果我序列化该消息,并且该消息的接收者对消息A有相同的定义,但它驻留在不同的包和不同的原型文件中,并且可能使用不同的语言。接收方是否会反序列化消息A?如果两个消息定义相同,则是,这将起作用。字段编号匹配很重要;如果字段名不同,那么就二进制格式而言,这实际上并不重要。问题实际上是关于包名是否是protobuf中消息名的一部分?这些名称根本没有作为二进

我有一个带有一些消息定义的原型文件。我在proto文件的开头声明了
package com.myorganization
。例如,该文件中有一个
消息
声明。如果我序列化该消息,并且该消息的接收者对
消息A有相同的定义,但它驻留在不同的包和不同的原型文件中,并且可能使用不同的语言。接收方是否会反序列化
消息A

如果两个消息定义相同,则是,这将起作用。字段编号匹配很重要;如果字段名不同,那么就二进制格式而言,这实际上并不重要。

问题实际上是关于包名是否是protobuf中消息名的一部分?这些名称根本没有作为二进制格式的一部分序列化,所以在你上面的问题中,发送者和接收者认为名字是什么并不重要。包名和消息名用于引用代码中的消息类型,但不是实际的二进制格式。因此,只有消息结构才重要?(类型和字段编号)如果在一个原型文件中有两个名称不同的消息,它们可以使用不同的消息进行序列化/反序列化吗?确切地说,只有消息结构才重要,只有类型和字段号才重要。是的,您可以在同一个.proto文件中包含两条不同的消息,并将消息序列化为一条消息,反序列化为另一条消息,只要它们的消息结构兼容。