LeanPush
消息推送
消息推送服务用于向客户端设备发送通知,云端统一对接 iOS 与安卓各自的推送通道,开发者只需调用一套接口。
推送的设备记录在数据存储里,可以像普通数据一样查询和更新;即时通讯的收件人不在线时,消息也会交给推送服务来送达。
功能
筛选推送目标
支持使用设备记录上的内建或自定义属性筛选目标设备。
统一消息格式
用统一的格式描述发送到 iOS 和安卓的推送消息,同时支持各平台特有的推送选项。
定时推送
推送可以指定时间发送,发出之前都能取消;也可以指定有效期,过期仍未送达的不再下发。
安卓混合推送
支持通过手机厂商的系统通道下发推送,绕开系统对后台进程的限制,接口与自有通道一致。
苹果推送
上传推送证书之后,由云端连接 APNs 进行推送。
推送记录
每条推送都会写入记录,可用于分析推送的送达和打开情况。
优势和特色
到达率高,省电省流量
基于 WebSocket TLS 通道,穿透性好,消息传递安全可靠。极简指令,自主二进制协议,省电省流量。
Android 混合推送
完美对接国内主流手机厂商的推送服务,提供可靠、统一的安卓推送解决方案。
APNs 专线连接
提供跨区域专线直连苹果推送服务集群,通道稳定可靠,保证消息全天候可达。
SDK 支持
客户端 SDK 覆盖这些语言和平台,发推送则可以直接调用 REST API。
Objective-C
iOS
Swift
iOS
Java
Android
C#
Unity
Flutter
iOS · Android
Unreal
Unreal Engine
技术介绍
推送与即时通讯共用基础设施,设备的长连接由同一个集群维持。推送请求先进入消息队列,推送服务再从队列里取出,检索出目标设备,把消息交给对应的长连接服务器下发。每个目标设备是数据存储 _Installation 表里的一条记录。
安卓的自有通道由 SDK 内的一个后台服务维持,尽可能维持常驻,若系统杀掉,则可以等到再次启动时获取离线期间的通知。安卓 8.0 起系统不再允许这样的后台进程长期存活,此后主要通过 FCM 以及各厂商提供的推送服务下发通知。
价格方案
以中国节点的价格为例。开发版有免费额度,商用版按用量计费,另有企业版需商务洽谈。
| 开发版 | 商用版 | |
|---|---|---|
| 推送请求频率 | 免费 60 次 / 分钟 | 600 次 / 分钟以内免费,每增加 600 次 / 分钟,每日费用 30 元 |
| 每日推送量 | 免费 1 万次 / 天 | 100 万次及以下免费,超出部分 0.5 元 / 万次 |
| 有效推送设备 | 免费,最近 3 个月的活跃设备 | 默认最近 3 个月的活跃设备,每延长 3 个月,每月费用 1000 元 |
| REST API 请求 | 免费 3 万次 / 天,与数据存储、即时通讯等服务共享额度 | 1.0 元 / 万次 |
更新历史
2021.08.05
2019.12.04
2019.12.04
2019.04.08
混合推送增加 vivo 和 OPPO 通道
混合推送接入 vivo 和 OPPO 的推送通道,至此覆盖华为、小米、vivo、OPPO、魅族五家。
2016.08.05
2016.02.03
2016.01.11
2015.03.13
2014.12.12
iOS 推送支持双证书
一个应用可以同时上传开发和生产两张推送证书,发推送时选择这次用哪一张。2015 年放开为多张证书,一个应用可以给不同的 app 推送。
2014.10.31
2014.09.26
2014.06.17
2014.05.12
2014.01.09
数据来源
功能介绍与价格参考了 LeanCloud 官网的 消息推送产品页 和 开发文档;「优势和特色」段落原文摘录自官网。技术介绍还参考了 实时通信服务架构:微服务和服务发现 与 2015 年 8 月 7 日:实时通信服务宕机故障报告 两篇文章。
更新历史整理自 LeanCloud Blog 的产品更新汇总、月度通讯和单独发布的公告。