google protocol buffer(简称pb)是大家常见常用的序列化工具, 有的公司还有自己的私有序列化工具(xxx工具). 我们平常用的就是xxx工具。  在很多情况下, 序列化出buffer后, 通常会加一个header, 这个header里面有这段buffer的相关信息, 还可能有命令字之类的附带信息。

        最近遇到这样一个问题: 我们的现有框架是支持直接解 xxx header + xxx body的, 里面的各种判断很完善(有包的完整性判断), 但最近接了一个需求, 要对接pb协议, 包的格式也是类似pb header + pb body,   于是我就为难了, 来了一个包, 怎么区分是xxx协议还是pb协议呢?  难道要尝试按这个解, 然后按那个解? 想了一下, 没有相处解法, 困意来袭, 就去睡觉吧。

        今天突然想到, 何不这么搞起: xxx header + pb header + pb body, 于是乎, pb header + pb body成了xxx协议的xxx body,    而在xxx header中有命令字信息, 可以通过命令字来区分来源, 然后进行处理。 

        爽爽哒!




本文转载:CSDN博客