google protobuf 消息是不是具有带有元信息的可解析标头?

Posted

技术标签:

【中文标题】google protobuf 消息是不是具有带有元信息的可解析标头?【英文标题】:Do google protobuf messages have parseable headers with meta information?google protobuf 消息是否具有带有元信息的可解析标头? 【发布时间】:2021-02-24 13:57:46 【问题描述】:

我找不到合适的指南来通过网络发送和接收 protobuf 消息。 教程中的example 展示了如何读取和写入文件。因此,一种天真的方法是为网络协议创建一个自定义标头并发送 protobuf 文件。 Header 还包含消息类型的枚举值。

所以问题是: protobuf 是否提供 API 来读取消息的 header 以便能够区分其类型和长度?如果提供,是否可以在不接收整个消息的情况下获取它?

【问题讨论】:

【参考方案1】:

不,一个普通的 protobuf 有效负载不包含有关消息类型的元数据(收件人应该提前知道这一点),也不是自我框架(如果在同一传输上发送多条消息,您应该使用您自己的帧协议)。

【讨论】:

以上是关于google protobuf 消息是不是具有带有元信息的可解析标头?的主要内容,如果未能解决你的问题,请参考以下文章

google protobuf-js:如何有效地解析我的消息

Google.Protobuf.InvalidProtocolBufferException:协议消息包含无效标签(零)

protobuf使用简介

Google protobuf解析消息逻辑的版本问题

C++ google protobuf:如何从扩展的 FieldDescriptor 创建 MutableExtension

Google protobuf proto文件编写规则