移动推送通知使用什么协议?

fsk*_*304 1 android push-notification apple-push-notifications ios firebase

移动推送通知使用什么协议?

以安卓为例。首先,从第三方服务器向 Firebase 服务器发出 HTTP 请求。接下来是问题。FIrebase 服务器如何从众多手机中选择所需的手机并发送推送通知?

当然,我知道我可以发送推送通知而不必担心。但是,我对兴趣很好奇。

在 TCP/IP 上,通信需要 IP 地址和 MAC 地址,但是如何向手机发送推送通知?

用于学习的链接

谢谢。

Pau*_*w11 9

在 iOS 上,当应用程序注册远程通知时,它会收到一个令牌。Apple 在其数据库中根据设备的实际唯一标识符存储此令牌。

iOS 设备本身在端口 5223 上保持与 Apple 服务器的持久 TCP 连接。该协议本身是 Apple 专有的。

当推送通知发送到 Apple 的服务器时,它们会交叉引用推送中指定的令牌以确定推送所针对的实际设备。

然后将通知通过已建立的 TCP 连接传送到设备。

如果设备当前未连接(假设它处于飞行模式),则有效负载将被保留,直到它重新连接或消息因太旧而被丢弃。

我想 Android 的工作原理大致相同

  • 这正是我一直在寻找的答案。非常感谢。我还有几个问题。抱歉我的知识匮乏。①设备本身永久保持TCP连接。这不会造成不必要的通讯和电池消耗吗?②如果设备上安装了使用多个推送通知的应用程序,是否会为该应用程序维护 TCP 连接数? (2认同)
  • iOS 设备尝试保持连接。当它重新上线时,就会建立连接。这与任何可能运行或未运行的应用程序无关。连接是由 iOS 本身内的任务建立的 (2认同)
  • 抱歉,我错过了你的前两个问题。1 - 维护 TCP 连接需要偶尔保持活动状态,但通常不会消耗大量电量。一次推送实际发送的数据量非常小。手机正在网络上一起执行定期任务,我确信苹果任务利用无线电加电来执行其中的许多任务。2. 由于通知不会直接传送到应用程序,因此只需要一个连接。iOS接收并处理它们 (2认同)