在移动互联网时代,用户对信息到达度的忍耐力变得越来越低,超过3秒便开始变得不安,超过7秒开始出现用户流失。这种现象,在用手机沟通时尤为强烈,用户对信息发送延迟的忍耐度是按秒计算,而信息丢失更成为一件不可以接受的事情。但是,在一秒钟之内成功完成一张图片或一段文字发送,这个简单动作的背后,技术却做了大量的努力。可能需要解决弱网环境的传输、网络动态切换的问题、不同终端的问题等,用户体验的每一小步进步,在技术领域都是一个大的跨越。
6月27日,中关村Binggo Café,CSDN携手容联·云通讯线下沙龙就“IM 5.0时代App社交化”与开发者进行深入的沟通与交流,共同探讨移动IM背后的技术奥秘,剖析云通讯IM如何聚焦场景·连接服务,对移动IM的极致化追求。
容联云通讯产品总监 张靖宇以《云通讯IM:聚焦场景·连接服务》为主题,介绍了容联云通讯的发展史,以及移动IM云通讯的基本功能和重构之路。从最初的VoIP能力、增加IM、视频能力到易用性优化、架构重构,三年的时间,容联云通讯已经历了5.0的演变,主要为开发者提供IM通讯、VoIP、会议、Video、呼叫中心五大方面的API服务,其基本功能包括:设备推送功能、多终端登录、客户端和服务端获取历史记录功能、服务端发送广播消息和推送设备以及数据统计等。
容联云通讯产品总监 张靖宇
在4.0接入易用性优化之后,容联对整套架构进行了重构。然而,与传统通讯不同的是,移动通讯包含了弱网络、网络动态切换、流量及耗电敏感、终端差异等问题,这也就表示,在对架构进行重新设计并开发时,必须解决是否使用消息中间件、数据库选择、状态同步、设备推送以及不丢消息。
在进行重构时,容联设定了快、省、稳的目标,这是所有开发者最关心的问题。首先,登陆、发送消息要快,对此,容联分别采用了无DNS设计、后台轮询测速、无注册流程、兼容用户账号体系,以及小包体协议、多媒体消息通道复用、push-pull系统架构来解决;其次,省电、省流量,容联采用ProtoBuffer+自定义协议、压缩机制、智能多包合并、包体精简、重连优化等技术手段来实现流量优化,并在省电方面运用网络+服务端动态调整、1个字节的心跳包和心跳空闲机制。此外,以多段ACK确认、永久化存储、排序队列控制来逻辑保证不丢消息。
分享完容联云通讯的发展、核心功能以及重构之后,在移动通讯行业拥有10年经验的益动思博科技CTO 袁秋波发表演讲,阐述IM的技术与价值。IM主要包括三种实现方式,分别为XMPP、第三方服务和二进制,开发者该如何进行技术选型?袁秋波就其优缺点以及使用案例进行了详细讲解。
益动思博科技CTO 袁秋波
在演讲中,袁秋波对基于XMPP协议的IM整体架构进行了剖析。XMPP可扩展消息与存在协议在早期时是以Jabber协议为基础的,后期又进行了一些扩展,在XMPP服务器开源框架方面,现在比较主流的有OpenFire、Ejabberd和Tigase等。OpenFire基于Mina框架实现,拥有着成熟稳定、插件多、易集群等优点,Ejabberd基于Erlang语言实现,高并发但学习成本高,不易于扩展。
袁秋波以OpenFire为例对XMPP进行了详细讲解,OpenFire自带数据库及用户认证机制,但无法满足项目中的用户认证要求,因此,通过配置及插件的方式修改OpenFire的用户认证机制,实现OpenFire访问数据库或用户鉴权API。对于文本、图片以及非实时语音和视频内容可直接使用XMPP的message节点进行传输:
<message from="madhatter@wonderland.lit/foo"> to="alice@wonderland.lit" type="chat"> <body>Who are you?</body> <subject>Query</subject> </message>
在演讲及Q&A环节中,还穿插着两次红包抽奖活动以及短暂茶歇。参会者在享用各式各样的美味点心、猛戳手机屏幕参与抽奖的同时,相互之间进行沟通,有些参会者还将自己在IM实践中遇到的问题与讲师进行交流,更有美女听众手写笔记,现场充满着温馨浓厚的交流氛围。