两大推送服务---jpush和fcm
因为工作需要,接触了游戏中必不可少的推送服务,我们用到的是JPush和FCM。JPush(极光推送)是独立的第三方云推送平台, 开发者集成 SDK 后,可以通过调用 API 推送消息。 全面支持 Android, iOS, Winphone 三大手机平台,但是不支持海外Android,所以我们用FCM(Firebase) 来做海外Android的推送服务。因笔者是服务器开发,故此篇只介绍一些服务器相关的东西,不涉及客户端SDK的接入。
JPush
JPush 提供四种消息形式:通知,自定义消息,富媒体和本地通知。我们只用到了通知,JPush的通知支持定时通知,但是和普通的直接通知的API稍微有点不同,服务器推送的目标地址也不同。
普通推送
服务器接口说明文档地址:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/
推送目标地址:
https://api.jpush.cn/v3/push
JPush 当前支持 Android, iOS, QuickApp,Windows Phone 三个平台的推送。其关键字分别为:"android", "ios", "quickapp","winphone",也支持推送到所有平台,关键字为"all", 不同的平台推送的notification字段结构会稍微有区别,可能有很多的字段,但是一个简单的推送一般需要的字段如下:
字段名 | 内容 | |
platform | all或者[android]或者[ios] | 推送平台设置 |
audience | [{registration_id,[pushid,push_id]}] | 推送设备指定、可同时推送多个 |
notification | [{ios,[{alert, PushContent}]}] | 通知内容体。是被推送到客户端的内容 |
options | [{apns_production, true}] | apns_production 字段来设定推送环境。True 表示推送生产环境,False 表示要推送开发环境 |
如果有一些需要推送给客户端的消息,可以放在extras字段中,他的值是key,value的形式的list,字段和alert是同一级别。
定时推送
定时推送可以设置一个时间,在到设置时间点之后再推送给用户。Jpush会维护一个Schedule,我们可以调用API对已发送到Jpush的推送进行修改和删除,且支持定期任务。
接口说明文档:https://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule/
推送目标地址:https://api.jpush.cn/v3/schedules
FCM
fcm推送必须在装有谷歌框架的手机上才能收到,不支持服务端定时推送,但是可在平台手动操作设置定时推送。
一个简单的推送结构如下
[
{registration_ids, [pushid,pushid]},
{data, [{title, Title}, {body, Body}]}, //这里可以增加其他任何想发给客户端的自定义字段
{nofification, []} //内容可以和data重复
]
在实际测试中发现fcm推送有时会有一些延迟,且只有在退后台且尚未杀进程的情况下可以收到推送。
本文地址:https://blog.csdn.net/pointer_y/article/details/109939713