im即时通讯开发的那些坑:架构设计、通信协议和客户端

移动端IM开发面临诸多挑战,包括无线网络的不可靠性、硬件资源限制等。在通信协议选择上,XMPP流量大且耗电,MQTT需自行扩展功能,私有协议工作量大但灵活,而Protobuf因其小巧、高效和易用性成为推荐选择。客户端方面,需解决流量、耗电、心跳策略等问题,架构设计要考虑连接器、中间件、逻辑服务器、状态服务器以及数据库的优化。

有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性、移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着大量的挑战。

移动互联网时代的来临促使我们所有的开发者都要从用户视角出发,基于某一特定场景来创建应用,满足用户需求。通常,在这些应用中,沟通环节都是必不可少的。这就要求创业者不仅要花时间和精力来琢磨用户在某一特定场景下有何痛点需求,琢磨如何解决这一需求,并且可能还要花费更多的精力和时间来解决产品中“沟通”这一技术节点。

而要解决沟通问题,就需要一套IM系统(而且肯定要支持移动端)。做为IM开发者或即将成为IM开发者的技术人员,IM的价值和重要性不言自明。但从技术实现来说,这并不容易。当然,假设你有100个用户,什么都是容易的,但是假设你有了100万、1000万甚至1亿的用户,再简单的技术节点解决不好,都会成为灾难,何况IM系统(尤其是移动端的IM系统)还是存在许多技术难点和坑点的。

 

有关移动端IM通信协议的坑

其次,我们再看一下IM 协议如何选型。通常IM采取的协议有xmpp、mqtt、protobuf等数据通信私有协议,我们来逐一分析他们的优缺点。

1.  XMPP协议:

优点:基于xml协议,容易理解,使用广泛,易于扩展。

缺点:流量大,在移动终端也耗电。交互过程复杂。多被pc时代的产品使用,不适合移动时代的IM产品,即使我们基于xmpp进行改进,简化握手过程,改进文件传输机制,但是它的基因决定了如何改进,他都不适合移动互联网时代的IM产品。就像凤姐无论怎么整容,也变成不了高圆圆一样。

2.  MQTT协议:

优点:适配多平台。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值