前言
IM是互联网业务重要组成,很多场景下需要即时地、方便地交流。而实现IM较为复杂,需要后台提供连接、投递、存储、统计支持,人力成本和机器成本都很高。所以目前很多用户选择不自己实现IM功能,或者使用QQ、微信等已经成熟的App交流,或者使用第三方IM云服务集成自己的应用。
使用现有App:免费,不用改变用户习惯,功能支持完整。但缺少面向自己业务需求的功能,数据安全性无法保证,无法得到统计信息。
使用第三方IM云服务:数据安全性得到一定保证,可支持更多的业务功能,得到用户活跃度、注册人数等统计信息。但商业化使用会收费,自己仍然需要完成一些工作(界面设计,SDK接口调用程序),可能依然会受第三方IM云提供服务功能的限制。
介绍
一、消息系统背景介绍:
消息系统一直是最性感的在线架构系统之一,具有高并发/高可靠/高实时等特性,技术难度高,挑战难度大,因此对于普通APP开发者来说,构建并维护一个可靠稳定的消息系统成本高昂,但是IM等社交属性又是APP必须的强性需求之一,所以这里存在一个基本矛盾。
当前市面上即时消息云服务,普遍存在接入成本高昂,没有OS层面对长连接的支持等问题。
小米每年都有接近一亿部手机售出,手机保有量巨大,小米天生拥有互联网基因,每一部手机(MIUI)都保有一条系统级长连接,平台巨大仅次于苹果(iOS)。有了系统级长连接支持,小米的消息推送做到了国内业界第一。现在我们又免费推出小米推送的姊妹产品MIMC(即时消息云),相信可以为广大开发者带来巨大的益处!
二、什么是小米即时消息云?
小米即时消息云MIMC:xiaoMI Messaging Cloud
MIMC是小米自研的一种安全、可靠、易用的分布式IM云服务。为广大开发者提供免费快捷的即时通讯接入服务。MIMC基于多年小米通讯技术积累,让即时通讯不再复杂。
目前开发者可在PC端打开链接小米开放平台查看小米即时消息云的介绍和API接入文档,SDK下载等。
https://dev.mi.com/console/appservice/mimc.html
三、MIMC文档库
包含MIMC的介绍、使用场景以及MIMC的优势、联系方式及常见问题等
四、MIMC的定位边界
基础功能
MIMC实现安全、可靠、易用的分布式IM云服务,为广大开发者提供免费快捷的即时通讯接入功能。
单聊消息,群聊消息,群组操作,历史消息查询,消息回调/离线消息回调,统计信息查询(后台管理员系统),国际化。
建议扩展
具体消息功能(红包、阅后即焚、已读/未读、位置)App开发者自行定制
可参考我们文档(https://github.com/Xiaomi-mimc/operation-manual)
五、MIMC使用场景
1、实现基础聊天功能
网页、app内等引用场景下轻松实现基础聊天功能,包括单聊、群聊、聊天室等,无论你是社交app单聊,还是游戏内玩家公会聊天接入MIMC都可以轻松实现。
2、实现在线客服功能
利用MIMC的一对一聊天通道实现在线客服的业务逻辑功能。
3、实现智能家居信令传递
利用MIMC的消息传递实现智能家居的信令传输。
4、其他功能
MIMC的灵活易扩展的消息类型方便实现其他各种不同类型的消息的传送。
六、MIMC vs 竞品优势:
1. 小米MIUI系统级长连接
对于消息系统而言,长连接是最根本的。小米MIUI作为安卓第一大平台,早在MIUI V5时代就添加了系统级长连接,小米MIUI优势是压倒性的。
2. APP方账号体系完美契合
目前市场上的消息云,APP开发者需要额外申请一套某信账号,并在服务端明文存储某信账号/密码,维护成本高昂,安全风险极高。
如果接入MIMC,APP开发者丝毫感知不到MIMC账号体系,所有收发都是用APP账号,无缝契合,安全性高。
3. 适用场景广泛
目前市场上的消息云,大都只能适用于聊天场景,其他消息场景不能支持。MIMC则可以支持智能硬件信令/聊天/客服/推送等任何消息传递场景。
4. 全平台支持
Android/iOS/Web/C/Java/Go等全平台/多语言支持,一期支持Android/iOS/Web三平台,后续会根据用户需要支持更多平台/语言。
5. 消息格式100%自定义高灵活度
目前市场上的消息云大都在聊天内容/格式自定义方面程度低,扩展性差。MIMC不对消息内容/格式进行限制,采用自定义二进制协议,APP可根据自己需求,灵活定制消息格式,传递更契合APP自身需求的数据。
6. 极简API设计
基于全新的api设计大大简化了app开发者的接入成本,3分钟即可实现聊天功能。
API示例:
user.sendMessage(String appAccount, byte[]); // 返回值为packetId
user.sendGroupMessage(long groupId, byte[]); // 返回值为packetId
user.registerMessageHandler(MIMCMessageHandler handler);
interface MIMCMessageHandler {
public void handleMessage(List
packets); public void handleGroupMessage(List
packets); public void handleServerAck(String packetId);
}
7. 完全免费
秉承小米的一贯的开放共赢原则,现阶段MIMC完全免费。
七、MIMC架构Demo展示
说明:
1.权限验证:用户账号权限验证基于App自己的服务器,MIMC通过App服务器返回的验证结果进行后续操作。如果通过再将应用相关信息发到TokenService服务器,返回token用于接下来与FE的通信。
2.PushService:后台服务发消息给某些用户。直接填写App信息、account信息即可发送消息。提供给后台服务发送消息能力。
iOS Demo
Android Demo
Web Demo
至此相信你对小米即时消息云服务已经有了比较直观的了解,如果想进一步了解请复制链接到浏览器打开或者点击阅读原文
https://github.com/Xiaomi-mimc/operation-manual
最后祝广大开发者早日用上MIMC实现即时通讯功能,安心回家过年,新年大吉,业务蒸蒸日上。
欢迎关注小米即时通讯云微信公众号及时获取更多资讯。
QQ群二维码见下图:
阅读原文