美文网首页
Protobuf 更新原有消息格式注意事项

Protobuf 更新原有消息格式注意事项

作者: XBruce | 来源:发表于2020-03-31 09:15 被阅读0次
如果一个已有的消息格式已无法满足新的需求,比如:要在消息中添加一个额外的字段——但是同时旧版本写的代码仍然可用。更新消息而不破坏已有代码是非常简单的。在更新时只要记住以下的规则即可。
  • 不要更改任何已有的字段的数值标识
  • 所添加的任何字段都必须是optional或repeated的
  • 非required的字段可以移除(更好的做法是添加前缀“OBSOLETE_”,或者标记成保留字段号 reserved,以便将来的 .proto 用户不会意外使用该号码 )
message Foo {
  reserved 2, 15, 9 to 11;
  reserved "foo", "bar";
}
  • 一个非required的字段可以转换为一个扩展,反之亦然——只要它的类型和标识号保持不变。
  • int32, uint32, int64, uint64,和bool是全部兼容的,这意味着可以将这些类型中的一个转换为另外一个,而不会破坏向前、 向后的兼容性
  • sint32和sint64是互相兼容的,但是它们与其他整数类型不兼容。
  • string和bytes是兼容的——只要bytes是有效的UTF-8编码。
  • 嵌套消息与bytes是兼容的——只要bytes包含该消息的一个编码过的版本。
  • fixed32与sfixed32是兼容的,fixed64与sfixed64是兼容的。

相关文章

  • Protobuf 更新原有消息格式注意事项

    如果一个已有的消息格式已无法满足新的需求,比如:要在消息中添加一个额外的字段——但是同时旧版本写的代码仍然可用。更...

  • 根据消息名称解析protobuf格式

    最近在解析一个网站的websocket时,发现使用的是protobuf,每个消息都使用一个统一的Wrapper封装...

  • Protobuf语法

    在protobuf中,协议是由一系列的消息组成的。因此最重要的就是定义通信时使用到的消息格式。 一个Protobu...

  • Protobuf2.6集成到ios平台

    最近我们项目组把socket通信的数据格式使用google 的Protobuf,简称“PB”,具体protobuf...

  • Google Protobuf简单使用

    一、简介 1.什么是ProtoBuf? Protobuf是google推出的数据交换格式,相比xml、json主要...

  • Protobuf消息规则

    消息的大致类型 网络通信涉及到消息的定义,不管是直接使用二进制格式,还是xml、json等字符串格式。消息都可以大...

  • swift Protobuf (一)初探

    什么是ProtoBuf?Protobuf是google推出的数据交换格式,其功能类似于xml、json,用户数据传...

  • Protobuf在项目中的编码坑

    标签(空格分隔): iOS,protobuf 公司现在用的protobuf这个格式来交互,于是前段时间恶补了一下p...

  • cocosCreator中Protobuf的简单使用

    cocosCreator中Protobuf的简单使用 proto文件格式: 准备工具: cocosCreator ...

  • ProtocolBuffers的编码

    参考文章protobuf-encode-varint-and-zigzagprotobuf格式及实现源码官方文档 ...

网友评论

      本文标题:Protobuf 更新原有消息格式注意事项

      本文链接:https://www.haomeiwen.com/subject/dhmmuhtx.html