iOS 必知必会 - APNs篇

iOS 必知必会 - APNs篇,第1张

导语:

由于移动设备内存、CPU、电量的局限性,iOS 不允许 APP 的进程常驻后台(事实上可以申请后台运行一段时间,最长约 10 分钟),这样当用户主动杀掉 APP,或者 APP 进入后台超过约定时长时,就意味着该 APP 进程的结束。这在很大程度上保障了前台 APP 的流畅性,也延长了手机的使用时长,获得了较好的用户体验。但是这也意味着,服务器无法主动和用户交互(如推送实时消息等)。为了解决这个限制,苹果推出了 APNs,允许设备和服务器分别与苹果的推送通知服务器保持长连接状态。

iOS 的通知分为本地通知和远程通知。本地通知是由本地应用触发的,一般是基于时间的一种通知形式,如闹钟、待办事件等的提醒。远程通知是由开发商通过自己的服务器推送的一种通知形式,而 APNs 就是远程通知功能的核心。

关于远程推送,记住以下两点就够了:

这里就很清楚了,其实 APNs 的本质就是 服务器和客户端之间的中介 。当服务器需要给客户端推送消息时,先将消息发送给苹果服务器,再由苹果服务器找到对应设备推送下去。

那为什么还要走中介,不直接发送呢?因为这样做一个设备(即所有 APP )只需要和苹果的服务器建立一条长连接,而不需要每个 APP 都和服务器建立一条长连接。

可能有些人还是不太明白 APNs 的意义,觉得也只是将多个长连接变成了统一的一个长连接而已,有必要那么做吗?

很有必要!

我们来看下 Android 的推送现状就明白了。

Android 事实上也有类似于 APNs 的一套用于推送的服务,简称 GCM,即 Google Cloud Messaging。但由于 GCM 需要谷歌服务器的支持,在国内由于「墙」的原因基本不能使用。这下就热闹了,国内出现了一大堆第三方推送服务商,如华为推送、小米推送、极光推送等。APP 通过集成这些推送服务来实现推送功能,而这些推送服务为了保持自己的长连接不被杀死,采用了各种保活、唤醒手段,这也是 Android 手机使用不流畅的真凶。之前也有看到「 工信部要求国内安卓统一消息推送标准 」的新闻,工信部都这么重视,可见统一推送的意义非凡。

想要了解具体区别,可以参考这篇文章 「 国内 90%以上的 iOS 开发者,对 APNs 的认识都是错的 」。

不言而喻,当然是尽早升级 HTTP/2 协议了。

参考:

(完)

苹果在中国有消息通知服务器的。

苹果公司对外证实,中国电信已成为苹果的数据中心提供商,苹果中国用户的信息将被存入中国电信的服务器。苹果公司表示,此举只是其改善iCloud服务速度和可靠性努力的一部分,iCloud服务允许用户存储照片、电邮以及其他数据。

近日苹果发出通知,自2月28日起,苹果公司将把iCloud(中国)服务器切换到国内进行运营,主要影响国家设置为“中国”的Apple ID所有用户。

不少网友反馈,陆续接到了iPhone发出的系统级通知,苹果表示,iCloud中国将转向云上贵州进行运营,在提升云端服务的速度和可靠性的基础上,更好的遵守中国法规。

资料迁移国内不光是遵守中国法规,对用户的安全性也是一大提升,之前iCloud的所有数据都存储在国外服务器,虽然苹果公司拥有很强的安全团队,但这些数据对国家而言还是不可控的。

这次迁移把数据放到国内,由我们自己进行保护,也防止国外政府购买苹果数据的可能性。

安全性这个事情在大部分用户那里还是不太重视的,只要不出事就是无视的状态,所以提升最明显的就是速度的体验。

之前云端服务器在国外,中国到国外的线路本身就有瓶颈,晚高峰期时运营商骨干网拥塞比较严重,国际线路拥塞问题更是堪忧,所以国内用户使用国外资源简直是痛苦。

相比国外服务器,国内的云端iCloud优势非常明显,全国重点城市部署节点,可以很好的提升全国用户的使用体验,也保证了可用性。

当然,苹果一贯的作风就是给用户提供足够的选项,并不是强制迁移国内,如果对国内公司不信任,不想继续使用也很简单,可以直接停用iCloud功能,这样的话,所有的苹果产品向服务器同步的数据都将清楚,不会有任何保留。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/493421.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-14
下一篇2023-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存