protobuf

  1. 序列化协议有:json,xml,protobuf

  2. 序列化:将数据结构或者对象转化成二进制数据(json是将数据结构或对象转化成字符串数据)

  3. 反序列化:和序列化相反

  4. 使用序列化需要考虑的几点:1)是否占用带宽 2)占用的CPU和内存 3)是否支持多语言

  5. protobuf:是谷歌内部开发,
    作用:结构化数据存储,通信协议
    特点:使用http传输的时候,抓包只能抓到二进制数据,如果是RESET API提供第三方库的时候,不建议使用pb,建议使用json。
    优点:速度快+数据小
    场景:传输量大&网络环境不稳定的数据存储,RPC数据交换。

  6. protobuf例子
    protobuf是可以进行嵌套的

person
string name
int id
string email
phone[] //一个或者多个电话(号码+类型)

使用protobuf协议进行序列化的数据

message Person{
	string name=1;
	int id=2;
	string eamil=3;
	enum PhoneType{
	MOBILE=0;
	HOME=1;
	WORK=2;
	}
	message PhoneNumber{
	string number=1;//电话号码
	PhoneType=2;//电话类型
	}
	repeated PhoneNumber phones=4; //一个或者多个电话号码
}
message AddressBook{
	repeated Person people=1; //0个或者多个联系人
}
//end messages

在实现增加一个人的时候,直接使用add_people()就可以了
问题1:报文和protobuf的关系?
报文存储的是二进制数据,只不过这个二进制是protobuf进行序列化的,解析出来的报文体,再进行反序列化就可以得到数据结构或对象了
问题2:使用http还需要接口接收转发数据,和接收模块了吗?
需要的,http服务是客户端和服务端,一般使用的是json来传递信息,也可以使用text,这个框架里一般会定义的。

protobuf使用的例子,暂时还不是很理解,后续有需要会再学习并且补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值