根据我在以色列举行的Android开发者大会上所听到的话:
在Google云端服务器上,只有一个TCP套接字在接受模式下等待。TCP连接已由Google Play应用程序启动。因此,必须在设备上安装Google Play才能使Google Cloud Messaging(GCM)(以前称为Android Cloud to Device Messaging Service- C2DM)正常工作。
当此TCP客户端套接字接收到某些消息时,该消息包含信息,例如应寻址的应用程序的程序包名称,当然还有数据本身。解析该数据并将其打包为意图,该意图将被应用程序广播并最终被接收。
即使设备的无线电状态变为“空闲”模式,TCP套接字仍保持打开状态。应用程序不必运行即可接收意图。
但是我认为它也可以在模拟器上运行。我想到的是该设备使服务器保持其当前路径(IP)的最新状态。当Google服务器需要发送通知时,它将采用其当前路径并将邮件转发到该路径。我在某种程度上对吗?
@Khawar Raza:当设备的IP由于某种原因而更改时,设备与服务器断开连接。发生这种情况时-根据设备的新IP,新连接会恢复正常。
@Khawar Raza:即使没有Google Play模拟器也可以工作。我猜想它会启动内部内置的此套接字,而不是Google Play
我知道了。实际上,那将是非常有趣的,我想知道那是真的。
因此,它仍然是轮询,但好的一面是,轮询是由Google Play集中管理的。