Protobuffer 官方文档学习
Protobuffer proto3 proto3 比 proto2 新,所以一般选用proto3进行构建项目。 下面英文版可以在 Language Guide (proto3) 上看到。 假设您要定义搜索请求消息格式,其中每个搜索请求都有一个查询字符串。 syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; // Which page number do we want? int32 result_per_page = 3; // Number of results to return per page. } 该文件的第一行指定您使用的是proto3语法:如果不这样做,协议缓冲区编译器将假定您正在使用proto2。 这必须是文件的第一个非空,非注释行。 指定类型 在上述示例中,所有字段都是标量类型:两个整数(page_number和result_per_page)和一个字符串(查询)。 但是,您也可以为字段指定复合类型,包括枚举和其他消息类型。 分配标签 消息定义中的每个字段都有唯一的编号标签。这些标签用于以消息二进制格式标识字段,并且在使用消息类型后不应更改它们。 请注意,值范围为1到15的标签需要一个字节进行编码,包括标识号和字段的类型