问题分析
推送渠道
mPaaS 移动推送服务通过以下渠道向设备端推送消息:
对于 iOS 设备,mPaaS 推送后端将数据推送到通过苹果 APNs 服务,由 APNs 负责向终端的推送。
对于 Android 设备,如在 mPaaS 控制端设置了第三方渠道(如华为、小米等厂商推送渠道),mPaaS推送后端针对性的将数据推送到这些三方厂商服务器,由这些服务器负责向终端推送。
对于非上述渠道,设备端与 mPaaS 后端建立长连接,并通过该长连接作为推送通道推送消息。
影响因素
在提及的推送渠道 APNs、三方厂商推送服务器、和自建渠道长连接正常的情况下,可以认为是近乎全部可以成功完成推送。但是,实际的推送到达率, 会受到很多因素影响的,例如:
第三方推送服务器的故障,导致 mPaaS 向其推送信息的失败。
第三方推送服务器与设备端的问题,导致信息未能成功送达。
推送服务器与互联网间的通讯问题,导致信息未能成功送达。
用户自身 APP 的进程保活能力,影响自建推送渠道的通畅,导致提送信息未能成功送达。
设备端所在的运营商网络或无线网络的故障,导致信息未能成功送达。
设备端因其它APP的影响,导致推送通道失效,致使信息未能成功送达。
应用APP本身的设计和编码导致保活状态差异。
其它各种影响到推送通道有效性的因素。
以上这些因素大多为非 mPaaS 推送服务自身可控,我们无法从 mPaaS 层面对该技术指标给出官方的数据。
结论
虽然使用相同技术构建的支付宝,其推送到达率在 98% 左右,但是由于支付宝采用了其他手段来确保推送通道畅通,例如同系 APP 间保活互保、与设备厂商间的白名单合作等,而这些手段不一定适用于普通的移动应用。因此,对于其他普通的基于 mPaaS 的移动应用,在我们所分析的取样范围内,得到推送到达率在 85% 到 95% 之间。