ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

iOS推送机制深度解析:挂起态数据存储奥秘

iOS推送机制深度解析:挂起态数据存储奥秘 这篇拐到iOS客户端。有读者问:App被切到后台、明明"睡着了",为啥推送还能收到?那条消息在App睡着的时候,到底存哪了?这问题问到点子上了。很多人以为是App自己在后台默默守着,其实完全不是。咱们从头捋。先破除一个误会:推送不是你的App收的新手最大的误区:以为推送是"我的App在后台一直连着服务器,服务器一发消息App就收到了"。大错。你的App要是真敢在后台一直挂着连接,iOS分分钟把它干掉——太耗电。苹果压根不允许。真实情况是:所有App的推送,都走苹果的同一个"总邮局"。这个总邮局叫APNs(Apple Push Notification service,苹果推送通知服务)。打个比方:错误理解: 你家(App)自己雇了个信使,24小时守在门口等信 → 累死,苹果不让 真实情况: 全小区(所有App)共用一个邮局(APNs) 邮局跟每家保持一条细线联系(省电) 谁家有信,先送到邮局,邮局统一投递整个iPhone,只有一条长连接通向苹果的APNs服务器(由系统维护,不是某个App)。所有App的推送都挤这一条线进来。这就是为啥推送这么省电——一万个App也只有一条连接。推送的完整链路:一封信的旅程先看全景,一条推送要经过四方:
返回列表