Protobuf(Protocol Buffer)是一种数据通信协议,相比JSON,它的传输数据量更小,而且没有对应的proto文件根本无法看懂传输的二进制格式数据,所以传输安全性也更高。
Protobuf的安装就不多做介绍了,这是之前写的Protobuf安装踩坑记录
放一个批量编译.proto文件的命令:
批量编译Module目录下的所有proto文件并输出protoc -I=./Module --objc_out=./Module ./Module/*.proto
这里主要列出使用其通信时需要处理的情况及常规写法,根据不同公司架构自行调整,下图是与后台协商后的数据包装格式,来源于游戏架构。
![4483590-96de8b38f4405c26.jpeg](https://i-blog.csdnimg.cn/blog_migrate/85d066acca73866108dc5e582f48c01e.webp?x-image-process=image/format,png)
字很丑=_=不要在意这些细节
HTTP短连接
Request格式
字段 | 长度 | 类型 | 数值 |
---|---|---|---|
0xff | 4 | int (int32_t ) |
大端255,小端-1677216 |
playerId | 8 | long (int64_t ) |
用户id |
sessionId | 8 | long (int64_t ) |
会话id |
size | 4 | int (int32_t ) |
data.length+4 |
commandId | 4 | int (int32_t ) |
协议号id |
data | data.length | NSDat |