推送到手机的通知真的是推送的吗?

Wit*_*ner 6 mobile android push-notification ios

我知道可以使用 http/s 将通知推送到服务器,但手机真的可以从这些服务器推送到吗?从技术上讲,我猜测移动设备实际上会轮询通知服务器以查看是否有任何新通知,这是一种“伪推送”。

所以这就是我的问题 - 手机是真正接收实时推送的通知还是它们实际上是在进行轮询?我问的原因是,当用户四处走动时,手机在网络上拥有一个通向桅杆的持续开放通道似乎非常昂贵。谁知道技术细节是什么?

Pau*_*w11 4

Apple 推送通知通过 TCP 连接传送到设备。iOS 设备在端口 5223上启动 TCP 连接(如果无法到达 5223,则在 WiFi 上回退到 443)。

一旦 TCP 会话建立,只需很少的流量即可保持 TCP 连接处于活动状态 - 只需偶尔使用保持活动数据包即可。

当要发送推送通知时,Apple 服务器会查找与设备的现有连接。如果找到连接,则数据流将通过已建立的连接发送,因此从这个意义上说,它是“推送”。

如果没有与目标设备的现有连接,则该消息将保留在 Apple 服务器上,直到设备连接(或消息过期),因此在这个级别上,它更像是“拉” - 设备在以下情况下启动连接它可以。

我想 GCM 的工作原理与此类似。