涨姿势咯,话说了解关于 IM 姿势滴小伙伴请举手!说你呢,快把手举起来。大家都知道今天的移动互联网和以往的互联网已经发生了翻天覆地滴改变,最主要的改变莫过于网络环境的变化了。辣么,这个改变对于 IM 最底层滴即时通讯协议又有啥米影响呢?
答案在介里:
以往的互联网时代,即时通讯的网络类型较为单一,表现为通过网线或者 WiFi 进行连接,网络环境固定且稳定。到了移动互联网时代,网络环境变得更加复杂与不稳定,首先表现为使用者网络类型不统一,如 2G 、 3G 、 4G 、 WIFI 等;其次,多变的地理环境,用户将随时处于地铁、电梯等网络信号不稳定的地方。所以,移动互联网的即时通讯协议设计时就要考虑到复杂的弱网络环境。
Soga ,原来是这样,既然如此,那么什么样的即时通讯协议是适合于移动互联网时代呢?
那自然是私有化二进制的协议了,辣么,私有化二进制协议与传统的互联网时代使用的 XMPP 协议又有啥米区别呢?
其实在以往的互联网时代 XMPP 协议还是有一定优势的,它自由、开放、公开的,并且易于了解。 而且在客户端 、 服务器 、 组件 、 源码库等方面,都已经各自有多种实现。在今天的移动互联网时代它的这些优势依然存在,但是它最的缺点就是它的不稳定性以及它的同时并发量低。之所以会有不稳定这种情况是因为前面我们也说到的今天的移动互联网的网络环境更为复杂,经常会有弱网的情况,而这种环境下,使用 XMPP 协议就不能保证消息的稳定了。再者就是并发量了,在这里给大家举一个现实的例子。陌陌在上市之前曾经有一段时间底层的即时通讯协议使用的是 XMPP 协议,当陌陌的用户量达到万级时候用户接收到的消息滞后、乱序,而当用户量达到数十万的时候用户开始反映经常接受不到消息,甚至有时会出现闪退现象。后来随着用户量越来越大,陌陌直接推翻原有的 XMPP 协议,自主开发一套私有化二进制协议。然而私有化二进制通过架构师的搭建都能避免使用 XMPP 协议出现的这些问题,当然这对于底层架构师的要求会比较高一点了。一个好的协议需要满足如下条件:高效,简洁,可读性好,节约流量,易于拓展。
好了,说了这么多,偶要去喝口水了,不知道讲滴怎么样,欢迎大家留言吐槽哦,希望大家多多关注偶的账号,记住,我是融云布道师, See U~!