第三方即时通讯服务

越来越多的移动 App 加入了即时通讯功能,目前也有越来越多的第三方即时通讯服务供开发者选择。如 环信融云阿里悟空容联云通讯LeanCloudBmob 等。

环信,最早的专门做移动通讯服务的团队之一。其功能很丰富,具有完善的用户系统、群系统等,也是为数不多能提供视频通话的服务。Demo 完成度也很高,但是工程结构一般。其通讯核心部分封装为了环信 SDK,以 .a 文件的方式打包发布,同时提供 cocoapods 方式引入(但更新很不及时)。UI 部分并未进行很好的组织,仅是在 Demo 中以源代码的形式提供,且代码质量一般。如果要调整 UI,只能在 Demo 源代码的基础上修改,或者自己实现。

融云,功能丰富、Demo 完成度高。迭代速度极快,每周更新一次。通讯核心部分和 UI 部分分别封装为了 IMLib 和 IMKit 两个库,工程结构良好。实现 UI 时,可以继承 IMKit 中的类,如有需要可在子类中进行调整。当然也可以只用 IMKit,自己实现 UI。与环信不同的是,它并没有用户系统,并不存储任何与用户相关的信息。这样设计的初衷在于,当一个应用需要集成即时通讯服务时,往往应用本身的服务器已经有一个用户系统了。所以对于应用的每一个注册用户,应用服务器不需要再申请注册一个新的融云用户,而只需要直接采用用户 ID 作为通讯的身份即可,用户信息全部都从自己的应用服务器中维护。

阿里悟空为阿里来往所采用的即时通讯服务,2015 年将服务对外开放并开发了移动端 SDK。目前功能较简单,Demo 完整程度较低。仅提供了核心通讯功能的封装,Demo 中的 UI 部分很简陋,只能作为参考。其也不存在用户系统,OpenID 的方式与融云的用户管理方式相似。

容联云通讯,包含短信验证码、即时通讯、音视频通话等,短信验证码的服务客户很多。腾讯云的音视频云通信 AVC,今年刚开放,主要优势在于音视频通讯。

LeanCloud 和 Bmob,是集多种应用服务为一身的后端服务。包括数据存储服务、消息推送服务、实时通信服务等。