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

时间:2015-10-27 09:06:34

标签: android ios mobile push-notification

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

这就是我的问题 - 移动电话是真的接收实时推送通知还是他们实际上是在轮询?我问的原因是,当用户移动时,移动电话的网络似乎是非常昂贵的,以便有一个不断开放的通道到桅杆。有谁知道技术细节是什么?

2 个答案:

答案 0 :(得分:0)

在云服务器上,只有一个TCP套接字在接受模式下等待。 TCP连接已由Goggle Play应用程序启动。这就是为什么必须在设备上安装Google Play以实现Google云消息传递(GCM)(以前的Android云到设备消息传递服务 - C2DM)的原因。

当此TCP客户端套接字收到某些消息时,该消息包含诸如应该发送到的应用程序的软件包名称之类的信息,当然还包括数据本身。该数据被解析并打包成广播并最终由应用程序接收的意图。

即使设备的无线电状态变为“空闲”,TCP套接字也会保持打开状态。模式。应用程序不必运行以接收意图。

http://developer.android.com/google/gcm/gcm.html

的更多信息

答案 1 :(得分:0)

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

一旦建立了TCP会话,就需要很少的流量来保持TCP连接的活动 - 只是偶尔的保持活动数据包。

当要发送推送通知时,Apple服务器会查找与设备的现有连接。如果找到连接,那么数据流将通过已建立的连接发送,因此在这种意义上它是一个" push"。

如果目标设备没有现有连接,则该消息将保留在Apple服务器上,直到设备连接(或消息过期),因此在此级别它更像是" pull" - 设备尽可能启动连接。

我想GCM以类似的方式工作。