Android 为什么推送通知服务器会准确地向客户端发送消息

Android 为什么推送通知服务器会准确地向客户端发送消息,android,ios,push-notification,windows-phone,android-c2dm,Android,Ios,Push Notification,Windows Phone,Android C2dm,以iOS中的Facebook应用程序为例,使用Apple推送通知服务(APNS)。我认为当Facebook服务器看到一个新的提要或新的好友请求时,它会向APNS发送一条消息。之后,APNS会将通知推送到正在登录该facebook帐户的客户端。我的问题是: 为什么APN知道哪个设备登录facebook帐户 APN如何准确地向该客户端发送消息(为什么APN知道客户端的IP地址) 据我所知,推送通知也是Windows Phone(Microsoft推送通知服务)和Android(云到设备消息)中使用的

以iOS中的Facebook应用程序为例,使用Apple推送通知服务(APNS)。我认为当Facebook服务器看到一个新的提要或新的好友请求时,它会向APNS发送一条消息。之后,APNS会将通知推送到正在登录该facebook帐户的客户端。我的问题是:

  • 为什么APN知道哪个设备登录facebook帐户
  • APN如何准确地向该客户端发送消息(为什么APN知道客户端的IP地址)
  • 据我所知,推送通知也是Windows Phone(Microsoft推送通知服务)和Android(云到设备消息)中使用的一种技术

    谢谢。

    好的,APNS(苹果推送通知服务)可以在每台设备上、每台应用程序的唯一ID上工作。 您将消息推送到该唯一ID,它将在用户设备上传递

    您的应用程序必须请求此ID并将其传递给服务器,服务器将发送通知。 该ID是由APNS API创建的,因此苹果知道该ID属于该设备和应用程序。
    我猜windows和android将以同样的方式工作。

    你的意思是Facebook应用程序在该设备上注册了APNS,并且有自己的ID。在我阅读你的答案之前,我想它会通过应用程序包(例如com.Facebook.iosapp)向设备发送一条消息。以及APN如何知道IP地址与每个设备ID相对应。我认为每次连接到Internet或IP更改,我的设备都会将IP地址发送给APN。没有使用IP地址,而是基于一个特殊ID(APNS令牌)。设备将与APNS服务器联系,并保持一个套接字打开,以接收所有应用程序的新通知。那么,您是说iOS必须在间隔时间内(例如每5秒)连接到APNS以检查是否有新连接?可能需要更多的电池。请给我一份关于iOS设备和APNS之间连接机制的文件,我可以了解更多!