欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

两大推送服务---jpush和fcm

程序员文章站 2022-03-23 22:55:58
因为工作需要,接触了游戏中必不可少的推送服务,我们用到的是JPush和FCM。JPush(极光推送)是独立的第三方云推送平台,开发者集成 SDK 后,可以通过调用 API 推送消息。 全面支持 Android, iOS, Winphone 三大手机平台,但是不支持海外Android,所以我们用FCM(Firebase) 来做海外Android的推送服务。因笔者是服务器开发,故此篇只介绍一些服务器相关的东西,不涉及客户端SDK的接入。 JPush JPush 提供四种消息形式:通知......

    因为工作需要,接触了游戏中必不可少的推送服务,我们用到的是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