即时通讯应用(包括IM聊天应用、实时消息推送应用等)开发的前期技术选型时,关于数据传输格式的选择,在即时通讯开发者同行的眼里,是个极富争议话题。

精略分析一下,大概的原因在于:
可选择的协议或封装格式多种多样:
可选择的余地很大:XMPP、Protobuf、JSON、私有2进制、MQTT、定格化XML、Plain text等等;
同一种格式并不能适用于大多数的场景:
不同的场景有同的考虑而协议的选择往 跟这是挂钩在一起的,比如:移动端IM或推送技术用XMPP这样的协议时,多数情况下都会被喷;
开发者对所选格式有各自的偏好:
有的人或团队对某种或某几种格式有不一样的经验和技术积累,也促成了他们对某种或某几种协议的偏好。
数据格式的选择需要考虑的方面
1网络数据大小:占用带宽,传输效率

虽然对单个用户来说,数据量传输很小,但是对于服务器端要承受众多的高并发数据传输(尤其现时高并发、大用户量的IM聊天应用和实时推送服务端等场景),必须要考虑到数据占用带宽,尽量不要有冗余数据,这样才能够少占用带宽,少占用资源,少网络IO,提高传输效率。
2网络数据安全性:敏感数据的网络安全
对于相关业务的部分数据传输都是敏感数据,所以必须考虑对部分传输数据进行加密。这通常出现在银行等数据安全性要求很高的应用行业和场景里,当然传统的即时通讯应用里基于用户隐私考虑,数据加密也是同样是个必须考虑的问

在即时通讯开发中,数据传输格式选择是个重要议题。常见的格式有XMPP、Protobuf、JSON等,选择时需考虑网络数据大小、安全性、编码复杂度和协议通用性。JSON因其序列化便利、扩展性强且可通过压缩解决数据量问题,成为作者的首选。
最低0.47元/天 解锁文章
896

被折叠的 条评论
为什么被折叠?



