如果自己实现消息序列化和反序列化算法会有以下问题:
1.不同编程语言对其基础数据类型的编码解码的实现不同,不同的语言进行对接要写不同编码解码的代码。
2.想要压缩消息体积,每个协议都要写它的encode()和decode()代码
protobuf可以解决上面两个问题,protobuf的作用:
step1:protobuf根据,协议描述文件生成编程语言等价的数据结构
step2:protobuf可以生成每个协议对应的encode()/decode()代码,(数据结构<——>二进制)
encode()/decode()中对消息体积进行压缩