APP & program

小米消息推送服务接入流程

2020-07-07  本文已影响0人  taj3991

考虑到接下来的一份工作可能会从事消息推送服务的开发,于是为了能够更快的熟悉业务,花了点时间研究小米的消息推送服务的接入。文章的主要内容都是来自小米推送服务介绍,以及会对部分内容进行梳理,主要用来学习推送服务接入的流程,如何推送消息,推送服务的大致原理,已经推送服务的架构是怎样的等等。

1. 小米推送简介

小米推送(MiPush)是小米公司向开发者提供的消息推送服务,通过在云端与客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用实时推送消息的服务,有效地帮助开发者触达用户,提升APP活跃度

依托强大的服务器集群,以及多年在手机即时通讯领域的技术积累,小米在消息推送服务这一领域有着丰富的经验和雄厚的实力。在保证推送消息的到达率及到达速度的同时,我们还设计了一套基于业界最高标准加密算法的安全措施,让应用消息的传输更加安全可靠

截止2019年底,小米推送累计接入应用30000+,覆盖设备数11亿,每天发送消息110亿条。

2.产品优势

3.推送消息类型

小米推送支持通知栏提醒和透传消息两种消息类型,同时提供运营平台及API两种推送消息下发方式。

3.1.1 通知栏消息

通知栏消息通过小米系统通道下发,不需要应用驻留后台。
客户端收到这类消息后,会直接在通知栏展现。用户点击弹出通知后,客户端SDK会将消息中携带的数据传递给应用,由应用决定下一步的动作。

3.1.2 透传消息

透传消息是指开发者可选择不通过任何预定义的方式展现,由应用直接接收推送消息。利用透传消息,开发者可自定义更多使用推送的方式和展现形式,从而能更为灵活地使用消息推送通道。

需要注意的是,在一些 Android 系统(如 MIUI)中,受到系统自启动管理设置的限制,应用不能在后台自启动。在这类系统中,如果在发送消息的时候对应的应用没有被启动,透传类消息将不能顺利送达。因此,对于对送达率要求很高的消息,建议尽量采用通知栏提醒的方式推送消息。

4.消息推送方式

小米推送支持标签(Topic)、RegID、别名(Alias)、Useraccount四种消息发送方式。

4.1 基于标签的推送

标签(Topic)可以认为是具有某些相同属性的用户集合, 在应用初始化时或运行过程中,开发者可结合自己的业务特征,给用户打上不同的标签(Topic)。

在推送消息时,开发者可以结合每条消息的内容和目标用户,选择所对应的标签,完成请求后,小米推送服务会向所有打上这一标签的用户发送该消息,从而满足精准推送的需求。

注:
• 标签不会主动失效,只有开发者主动调用退订标签(unsubscribe)或设备标识(RegID/alias/useraccount)失效才会取消

4.2 基于 RegID的推送

RegID是小米推送为每个设备上的每个app注册推送服务时生成的唯一标识。

当开发者需要给一个或多个具体的设备推送消息时,可以使用基于 RegID的推送,将个性化的信息推送给指定的设备。这种方式适用于需要为每个用户订制个性化推送的场景。

注:

4.3 基于别名(alias)的推送

别名(alias)是小米推送提供的一种个性化设定, 开发者可以将用户在应用内的账号或其它用户唯一标识设定为用户设备 RegID 的别名,在推送中可以直接基于别名进行推送。

别名不仅方便开发者将推送与自有的账号系统进行关联,同时也避免了因需要保存设备 RegID 与自有帐号的对应关系而额外带来的开发和存储成本。

注:

4.4 基于useraccount的推送

useraccount主要适用于用户多点登陆的情况,与alias类似,同样可以作为应用自身的用户标识与RegID建立映射关系。

典型的场景就是用户的alias和user account都可以用来设置设备对应的用户账号,所不同的是,一个alias只能对应一台设备,如果有多台设备设置了同样的alias,则最后一个设置成功的生效,其它设备就会失效。而一个user account可对应20台以内的设备。因此如果应用是单点登录的,一个账号只会在一台设备上生效,用alias会比较合适。而如果产品需求是单账号多点登录同时接收消息,则用user account会更合适。

注:
useraccount最多可对应20台设备,并以最近注册的20台设备为准(如果第21台设备注册,则第一个注册的设备将会失效)。

4.5 其他个性化功能

说明:


5. 使用推送

5.1 启用推送

登录小米推送官网,注册开发者账号并创建App,通过管理控制台启用推送服务,详细介绍请参见《小米推送服务启用指南》。

5.2 下载并集成客户端SDK

SDK下载地址:http://dev.xiaomi.com/mipush/downpage/

5.3 推送实现方式

5.3.1 API推送

通过小米推送提供的API接口,开发者可以自行构建并发送消息。包括个性化功能实现、获取统计数据、追踪消息状态、拉取失效数据等。小米推送官方提供了JAVA服务端SDK版本,如果无法满足需求,我们同样提供了http API,开发者可以在底层接口上自行进行封装,满足各种定制化的推送需求。

5.3.2 推送运营平台

推送运营平台是小米推送提供的管理和使用推送业务的一站式平台,通过运营平台开发者可以实现应用管理、消息下发、数据统计、使用人员管理等功能。

推送运营平台网页版推送工具可以帮助开发者通过运营平台快速实现消息下发。
支持通知栏消息和透传消息两种类型,同时支持多种推送方式和个性化推送。

6. 推送统计

小米推送支持推送数据实时统计功能,包括推送数据、APP数据、消息记录等维度,帮助开发者更好的监控和分析业务现状。

开发者可以根据业务需求,登录推送运营后台查看,或者通过API接口获取。

API接口请参见《服务端 JavaSDK文档》中的“获取统计数据”一节。

官方文档

https://dev.mi.com/console/doc/detail?pId=863

上一篇下一篇

猜你喜欢

热点阅读