记者:容联云通讯IM的基本功能有哪些?
张靖宇:云通讯平台是一个全通讯能力的平台,围绕通讯的各个环节都有产品。IM只是其中一项。基本功能有:单聊,是指点对点之间的功能,支持文本、语音、图片、附件、表情的发送,支持已发送的消息回执,发送的概念是指你发送一个消息,发送到服务端了,服务端会给你确认,说这个消息服务端已经收到了;群聊功能,支持2000人的群组,一个群组可以加入2000人,每个人可以加入500个群组。支持私有群组和公开群组;设备推送功能;服务器发送广播消息,在服务器端给固定的群组或全部的用户发送消息;数据统计:统计在一个时间段内的APP当中有多少用户使用了IM功能,发了多少条消息,分布来自什么设备。
记者:容联云通讯2013年才发布了第一个版本,现在已经发布到了5.0版本,经历了怎样的演变?
张靖宇:我们一开始做的时候,商业模式是模仿国外的一家公司,通过网络接口的方式拨打固定电话,在第一版本中主要是集成了VoIP功能。企业用VoIP,要解决内部的通讯问题,降低通讯费,因此有了IM的需求,我们在2.0版本中增加了IM功能;到了3.0版本SDK的能力基本全了,有IM能力、视频音频能力、视频会议能力、电话会议能力。这四个版本都是用户需求推着我们走,没有自己的顶层设计。我们团队原来主要是做通讯的,采取的都是PC端的思维,在易用性方面考虑不是太多,所以前期用户反馈回来很多问题。4.0版本时,我们对易用性做了一些优化,用户接入时就会相对轻松。这个问题解决后,用户还反馈了流量、耗电等问题,我们做了比较全面的分析,原有的架构完全适配不了移动端,所以我们就决定把前面这些架构推翻掉,完全基于移动端重构了架构,推出了5.0版本。
记者:推翻原有的架构,重构基于移动端的架构,具体都做了哪些事情?
张靖宇:首先,我们分析移动通讯的特点,网络不稳定、丢包率高、延时高、流量敏感、流量收费高、耗电等等。主要从几个方面来考虑:
网络的考虑:我们有2G、3G、4G、WIFI,且不同运营商网络状况不同,要做出不同的应对;
消息中间件:消息中间件的作用主要是解耦的作用,考虑是否使用消息中间件;
数据库:选择什么样的数据库,是关系型还是非关系型,还是混用?非关系型数据库效率更高;
IM协议:XMPP是文本协议,它的定义协议可读性、扩展性都很强,但是它更适用于PC端;simple协议比较消耗流量;Redis协议,业内用的不多;
最后,我们确定了移动端的目标,一个是登陆要快,发送消息要快;二是要省,要省电、省流量;三是要稳定,不要丢消息,稳定性要达到99.99%以上。