iOS“推送”通知如何在不需要轮询服务器的情况下传递到特定设备?
例如,假设我在 Facebook 上收到一条新消息。Facebook 通知 Apple 我的设备应该收到这样的通知。但是 Apple 是如何知道将消息推送到哪个设备/IP 的呢?
iOS“推送”通知如何在不需要轮询服务器的情况下传递到特定设备?
例如,假设我在 Facebook 上收到一条新消息。Facebook 通知 Apple 我的设备应该收到这样的通知。但是 Apple 是如何知道将消息推送到哪个设备/IP 的呢?
每个设备都可以使用自己唯一的设备令牌更新数据。这张照片说明了一切。.
这对我来说太多了,无法发表评论。
从文档。
Apple 推送通知服务 (APN) 将推送通知传播到已注册应用程序以接收这些通知的设备。每台设备都与服务建立认证和加密的 IP 连接,并通过此持久连接接收通知。提供者通过持久且安全的通道与 APN 连接,同时监控为其客户端应用程序输入的数据。当应用程序的新数据到达时,提供者准备并通过通道向 APNs 发送通知,APNs 将通知推送到目标设备。
我建议阅读文档以获取更多信息以及如何使用和配置。这一切都在那里。
设备不会继续轮询服务器以获取推送通知。
为简单起见,请考虑将 iPhone 连接到互联网。在连接到互联网时,iPhone 会建立与 Apple Push Notifications 服务器的连接,此连接是开放连接,这意味着数据可以在数据到达服务器的那一刻从服务器发送到 iPhone。
Apple 不使用 HTTP 协议进行推送通知,但如果您了解 HTTP 协议,它几乎是一种类似的方法。
http://en.wikipedia.org/wiki/Push_technology#HTTP_server_push
这篇文章中对推送通知有一个非常好的解释。
在 iOS 中,应用程序不能在后台做很多事情。应用程序只允许执行有限的活动集,因此可以节省电池寿命。
但是,如果发生了一些有趣的事情,并且您希望让用户知道这一点,即使他们目前没有使用您的应用程序,该怎么办?