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

标签 android ios mobile push-notification

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

那么这就是我的问题 - 手机是否真正接收实时推送通知,或者它们实际上是在轮询?我问的原因是,当用户四处走动时,移动电话在网络上拥有一个持续开放的桅杆 channel 似乎是非常昂贵的。有人知道技术细节是什么吗?

最佳答案

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

一旦建立了 TCP session ,就需要非常少的流量来保持 TCP 连接 Activity - 只是一个偶尔的保持 Activity 数据包。

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

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

我想 GCM 的工作方式类似。

关于android - 推送到手机的通知真的是推送的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363665/

相关文章:

javascript - 如何检测 iOS Mobile Safari 和 Chrome 的 "request desktop site"模式?

android - 为什么禁用的项目在 ListView 中仍然可以检查

Android - Google map 顶部的 float 操作按钮

Android 应用程序因按钮事件而崩溃

ios - Xcode:标签制作错误

ios - NSDateFormatter 获取格式为 'MMM dd, yyyy HH:mm a' 的日期 nil

android - 从 coverage.ec 文件获取覆盖率信息

android-layout - Android RatingBar 大小

objective-c - MKMapView 中的奇怪行为 - 引脚消失

Django ModelForm ImageField Upload 不适用于移动设备