有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性、移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着大量的挑战。
移动互联网时代的来临促使我们所有的开发者都要从用户视角出发,基于某一特定场景来创建应用,满足用户需求。通常,在这些应用中,沟通环节都是必不可少的。这就要求创业者不仅要花时间和精力来琢磨用户在某一特定场景下有何痛点需求,琢磨如何解决这一需求,并且可能还要花费更多的精力和时间来解决产品中“沟通”这一技术节点。
而要解决沟通问题,就需要一套IM系统(而且肯定要支持移动端)。做为IM开发者或即将成为IM开发者的技术人员,IM的价值和重要性不言自明。但从技术实现来说,这并不容易。当然,假设你有100个用户,什么都是容易的,但是假设你有了100万、1000万甚至1亿的用户,再简单的技术节点解决不好,都会成为灾难,何况IM系统(尤其是移动端的IM系统)还是存在许多技术难点和坑点的。
有关移动端IM通信协议的坑
其次,我们再看一下IM 协议如何选型。通常IM采取的协议有xmpp、mqtt、protobuf等数据通信私有协议,我们来逐一分析他们的优缺点。
1. XMPP协议:
优点:基于xml协议,容易理解,使用广泛,易于扩展。
缺点