默认

强列建议将Protobuf作为你的即时通讯应用数据传输格式

查看数: 219846 | 评论数: 13 | 收藏 13
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-05-02 16:36

正文摘要:

前言 即时通讯应用(包括IM聊天应用、实时消息推送应用等)在选择数据传输格式的时候,相信没有真正实践过的人,都会犹豫该怎么选择。在即时通讯开发者同行的眼里,怎么选择其实是个极富争议话题。不过本文作者强烈 ...

评论

wusir 发表于 3 年前
前面说用json,这篇就说用pb了
JackJiang 发表于 4 年前
引用:mark_lin 发表于 2020-06-18 22:51
我以为Protobuf协议的目的是为了减少传输的数据量,要提高安全性还是要依靠TLS。请教下是这么理解吗@Jack ...

是的,pb是数据格式,不好说安全性跟数据格式有关。必竟,JSON、XML、protobuf放一起比较,没有人会从安全性这个角度来看问题,因为不关它们的事。
mark_lin 发表于 4 年前
引用:JackJiang 发表于 2020-06-17 11:06
这两篇也可以:
《Protobuf通信协议详解:代码演示、详细原理介绍等》
《如何选择即时通讯应用的数据传 ...

我以为Protobuf协议的目的是为了减少传输的数据量,要提高安全性还是要依靠TLS。请教下是这么理解吗@JackJiang 谢谢,因为我并没有搜到有关pb安全性方面的资料
JackJiang 发表于 4 年前
引用:mark_lin 发表于 2020-06-16 23:56
https://www.jianshu.com/p/a24c88c0526a
初学者再看这篇文章应该理解会更清晰

这两篇也可以:
Protobuf通信协议详解:代码演示、详细原理介绍等
如何选择即时通讯应用的数据传输格式
mark_lin 发表于 4 年前
https://www.jianshu.com/p/a24c88c0526a
初学者再看这篇文章应该理解会更清晰
妮子 发表于 5 年前
引用:weixiaoyao 发表于 2019-01-14 10:45
pb非常方便,除了节省交换的数据量之外,另一个很好的优点是非常容易兼容老的客户端。假设线上有很多手机端 ...

很赞
JackJiang 发表于 5 年前
引用:weixiaoyao 发表于 2019-01-14 10:45
pb非常方便,除了节省交换的数据量之外,另一个很好的优点是非常容易兼容老的客户端。假设线上有很多手机端 ...

说的好
weixiaoyao 发表于 5 年前
pb非常方便,除了节省交换的数据量之外,另一个很好的优点是非常容易兼容老的客户端。假设线上有很多手机端,因为业务或bug原因需要修改交互的协议格式,pb可以通过optional来增加新字段,在不强制客户端升级的情况下就能兼容老的数据。
1924458916 发表于 7 年前
很棒,非常感谢~
jollyant 发表于 7 年前
谢谢分享
digisonny 发表于 8 年前
很棒,非常感谢~
JackJiang 发表于 8 年前
引用:sxb 发表于 2016-05-04 19:35
看的还是不是太懂,这个不就是数据传输,如果协议本身就是json ,需要拿这个转换吗?

应用层来看JSON跟Protobuf就是文本格式跟2进制格式的区别,但不是你这种理解。
假设一个布尔量,用JSON的话,可能是这样的:{sucess:true},你数数看这一共占几个字节?而2进制协议可能只需要一个bit(也就是1位,1个字节等于8位):0或1,这样斤斤计较下来,一个完整的协议如果用2进制来表示,则数据长度要短太多了。在移动端省下来的这些字节,就是帮你省了流量,很现实的问题。

PC端多数时候还是为了方便,比如JSON这种格式就很直观易读,而移动端因为电量和流量都是有限资源,所以大家还不能那么奢侈地大手大脚地玩,只能斤斤计较。
sxb 发表于 8 年前
看的还是不是太懂,这个不就是数据传输,如果协议本身就是json ,需要拿这个转换吗?

返回顶部