iPhone, Android 手机是如何收到推送通知的?

本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除

iPhone, Android 手机是如何收到推送通知的?

我们的手机或电脑是如何收到推送通知的?

通常我们可以使用消息解决方案 Firebase 来支持通知推送。下图显示了 Firebase Cloud Messaging(FCM)的工作原理。

在这里插入图片描述

FCM 是一种跨平台消息解决方案,可以可靠地编写、发送、排队和路由推送通知。它在消息发送方(应用程序服务器,App Server)和接收方(客户端应用程序,Client Apps)之间提供了统一的 API。应用程序开发人员可以使用该解决方案来提高用户留存率

第 1 - 2 步

当客户端应用程序首次启动时,客户端应用程序会向 FCM 发送凭证,包括 Sender ID、API Key 和 App ID。FCM 会为客户端应用程序实例生成注册令牌(Registration Token,因此注册令牌也称为实例 ID)。该令牌必须包含在通知中。

第 3 步

客户端应用程序将注册令牌发送到应用程序服务器。应用程序服务器会缓存令牌,以便后续通信使用。随着时间的推移,应用服务器会有太多的令牌需要维护,因此建议的做法是存储带有时间戳的令牌,并不时删除过期令牌。

第 4 步

发送消息有两种方法。一种是直接在控制台图形用户界面中编写消息(第 4.1 步),另一种是从应用程序服务器发送消息(第 4.2 步)。

第 5 步

FCM 接收信息,如果设备不在线,则将信息放入存储队列。

第 6 步

FCM 将信息转发到平台级传输层。该传输层处理特定于平台的配置。

第 7 步

将信息路由到目标设备。可根据应用程序服务器发送的配置显示通知。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453089.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

刷题DAY21 | LeetCode 530-二叉搜索树的最小绝对差 501-二叉搜索树中的众数 236-二叉树的最近公共祖先

530 二叉搜索树的最小绝对差(easy) 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 思路:双指针法 代码实现: class So…

ArmSoM Rockchip系列产品 通用教程 之 RTC 使用

1. RTC 简介​ RTC:(Real_Time Clock):实时时钟 HYM8563是一种低功耗实时时钟(RTC)芯片,用于提供精确的时间和日期信息。它提供一个可编程的时钟输出,一个中断输出和一个掉电检测器,所有的地址…

从零开始,一步步构建服务网格istio

一、环境情况 环境:Ubuntu20.04 机器数量:单机1台 IP:10.9.2.83 二、准备知识 为什么使用 Istio? Istio提供了一种更高级别的服务网格解决方案,它可以简化和加强 Kubernetes 集群中的服务间通信、流量管理、安全…

SpringBoot配置加载顺序和SpringBoot分离打包:将jar包与lib依赖、配置文件分开

文章目录 一、SpringBoot配置加载顺序1.SpringBoot配置优先级(1)命令行参数(2)配置文件 二、SpringBoot分离打包:将jar包与lib依赖、配置文件分开1.pom文件配置2.打包后的目录结构 一、SpringBoot配置加载顺序 官方文…

下载文件,无法获取header中的Content-Disposition

问题:axios跨域请求时,无法获取header中的Content-Disposition,并且network中已显示Content-Disposition 在使用CORS方式跨域时,浏览器只会返回默认的头部Header 解决: 后端在返回时,需要设置公开的响应…

C++第三弹---C++入门(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 C入门 1、内联函数 1.1、概念 1.2、特性 2、auto关键字(C11) 2.1、类型别名思考 2.2、auto简介 2.3、auto的使用细则 2.3、auto不能推导的场景 …

Transformer家族

在《Transformer原理》中我们介绍了,现在很多大模型都是基于Transformer,其中最出名就是GPT和BERT模型,在GPT和BERT模型被提出来之后,NLP领域也出现了基于Transformer结构的模型,按照模型结构基本可以分为三类&#xf…

(2022级)成都工业学院Java程序设计(JAVA)实验一:编写一个简单的Java程序

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求,请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 1、 控制台菜单。要求如下: 1)…

镭速教你如何解决大数据量串行处理的问题

大数据的高效处理成为企业发展的关键。然而,大数据量串行处理的问题常常困扰着许多企业,尤其是在数据传输方面。本文将探讨大数据量串行处理的常见问题,并介绍企业常用的处理方式,最后重点阐述镭速如何提供创新解决方案&#xff0…

手机如何打开mxf视频?怎么把mxf压缩转换成mp4?

在应用商店中下载并安装支持MXF格式的播放器应用,例如VLC媒体播放器、MX播放器等。这些应用通常支持更多的视频格式,并提供更多的播放和管理功能。而MXF文件通常比较大,尤其是对于高分辨率和高质量的视频。可以通过野葱视频转换器将MXF压缩转…

中国人工心脏五年风云录:谁主沉浮?

在生命的长河中,有些时刻会永远铭记。对于李先生来说,那个转折点是在2019年,当他被诊断为终末期心衰患者,生命进入了倒计时。然而,随着中国人工心脏技术的飞速发展,李先生的命运得以改写。 心衰&#xff0…

【AI绘画教程】AI绘画图生图怎么用?

AI绘画技术已经越来越成熟,越来越多的人开始尝试利用AI进行创作。而AI绘画图生图作为一款优秀的AI绘画工具,正是帮助许多人创作的好帮手。 AI绘画图生图功能可以通过多种软件实现,具体的操作步骤可能因软件而异,但大体流程相似。以…

期货开户之前需要了解什么?

一、期货开户之前需要了解什么? 1、确保期货公司是100%正规,可以在证监会或期货协会官网查询到。 2、是否是通过“期货开户云”系统开户,其他系统开户均为假冒。 3、提前跟期货公司居间人或客户经理谈好手续费收取标准、手续费返还比例是多…

使用IDEA构建SpringBoot程序的镜像

实战:使用IDEA构建SpringBoot程序的镜像 这里就以我之前写的WIT问卷管理系统为例子吧。 首先在之前写好的SpringBoot项目中新建一个DockerFile 在Dockerfile中写入我们的base镜像,之前我已经创建好了并且传到docker仓库了,这里就直接拉取 …

树莓派4B Ubuntu20.04 Python3.9安装ROS踩坑记录

问题描述 在使用sudo apt-get update命令更新时发现无法引入apt-pkg,使用python3 -c "import apt_pkg"发现无法引入,应该是因为:20.04的系统默认python是3.8,但是我换成了3.9所以没有编译文件,于是使用sudo update-alte…

yolo发展历史

yolo系列 一、任务描述二、设计思想三、发展历程1. YOLOv11.1问题背景1.2创新点1.3训练流程1.4检测流程1.4.1 优点1.4.2 缺点 2. YOLOv22.1问题背景2.2创新点2.3提升性能的方法2.4训练流程???? 3. YOLOv33.1问题背景3.2模型改进 4…

蓝桥杯倒计时 36天-DFS练习2

文章目录 黄金二叉树混沌之力2 黄金二叉树 思路一&#xff1a;递推做法 #include<bits/stdc.h> using namespace std;const int N 1e510;int A[N]; int B[N]; int n,sum;int main( ){cin>>n;for(int i1;i<n;i)cin>>A[i];int left,right;for(int i1;i<…

[C语言][PTA基础C基础题目集] strtok 函数的理解与应用

一.strtok函数的解释与说明 ①strtok函数的功能 Find the next token in a string. 即查找字符串中的下一个标记. 就是将一个字符串分割成一系列的子串. ②strtok函数的原型 char *strtok( char * strToken, const char * strDelimit ); strToken: 要分割的字符串. strDel…

【Java探索之旅】解密Java中的类型转换与类型提升

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java编程秘籍 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、类型转化1.1 自动类型转换&#xff08;隐式类型转换&#xff09;1.2 强制类型转换…

STM32CubeProgrammer + STLINK V2 烧录

发现使用STM32C8T6 STLINK V2 STM32CubeProgrammer无法成功烧录&#xff0c;总是报错 file error。至于原因&#xff0c;姑且参考&#xff1a;STLINK V2 无法用STM32CubeProgrammer下载程序-CSDN博客 解决方案&#xff1a; 烧录工具由STLINK换成OpenOCD。 stm32f1x.cfg # S…