我尝试了这个例子,并且能够得到一条信息:
// awesome.proto
package awesomepackage;
syntax = "proto3";
message AwesomeMessage {
string awesome_field = 1; // becomes awesomeField
}
complete solution is in my answer in this question
.
protobuf是否允许我们将多种消息类型写入一个文件并将其读回?(或通过网络,一条接一条地发送消息)。
我认为它的威力在于,我们可以“混合并匹配”信息类型?(这意味着它可以是Message1,然后是Message2两到三次,并且可以是完全动态的?)
那么,让我们假设我们有
// awesome.proto
package awesomepackage;
syntax = "proto3";
message AwesomeMessage {
string awesome_field = 1; // becomes awesomeField
}
message AwesomeNameMessage {
string awesome_name = 1; // becomes awesomeName
}
我只是在protobufjs的网站上引用了这个例子,然后写了
AwesomeMessage
创建一个文件,然后创建
AwesomeNameMessage
并将其连接到同一个文件。
read.js
然后读回留言
我写这封信时被卡住了
const AwesomeMessage = root.lookupType("awesomepackage.AwesomeMessage");
问题是,我不知道是不是
令人敬畏的信息
或
AwesomeNameMessage
,那么我们如何进行呢?protobuf能否以上述方式工作,或者
我们是否需要定义所有消息类型(可能是1000种),然后将所有消息类型封装到一个消息类型中,例如
GenericMessage
,并以某种方式使用
oneof
optional
)? 它是如何工作的?