小白网-奉贤部落-奉贤免费信息发布平台

查看: 24|回复: 0
打印 上一主题 下一主题

苹果消息延迟怎么办(苹果手机延迟消息解决办法)

[复制链接]

2万

主题

2万

帖子

7万

积分

论坛元老

Rank: 8Rank: 8

积分
78182
跳转到指定楼层
楼主
发表于 2025-7-26 12:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们知道历代iPhone最大的问题之一就是通知延迟,没有提醒。其实这个问题无论你是什么机型,几代iOS系统都会出现。很多人会问,这个问题存在这么久了,苹果不知道吗?其实不是我不知道,而是我无能为力。
说到苹果系统的通知,我们需要知道苹果系统的推送原理。
首先,苹果系统的通知是由苹果的APNs(苹果推送服务器)统一推送到我们手机上的,也就是我们发送的消息必须经过app厂商服务器,然后app厂商服务器再将消息转发给APNs服务器,APNs服务器再发送给我们手机上指定的app。最后iOS系统处理后弹出提示框。示意图如下:
推动图
首先要知道,消息的及时推送大多是基于TCP/ip协议连接的。就像上图中的箭头一样,可以认为是TCP连接。如果任何一个断开连接,它将不会收到通知推送。
我们用的微信经常会延迟。在张小龙的采访记录中,他说不想做iPad版的微信,如下图。
张小龙访谈实录
问题的起因:我们现在用的宽带大部分是运营商分配的私有IP,私有IP和公有IP不一样。公网IP可以直接访问公网,网络很流畅,但是不能单独使用内网,需要连接公网才能使用。我们的消息延迟发生在私网和公网的连接上。由于IP和端口的数量有限,而我们用户的需求是无限的,我们使用的专网IP和端口在使用一段时间后需要回收。恢复时间是运营商规定的,与手机系统无关。大部分会在两三分钟内回收,有的甚至更短。这就导致我们推送需要的TCP连接会在一段时间内自动断开,检测不到数据循环就会立即断开。这就是不通知消息的原因。延迟是因为我们已经发送了消息,但是TCP已经断开,所以消息无法发送。但是,过一段时间,积累的消息会重新发送,这就是为什么我们看到的消息是几分钟前的。
很多伙伴都有不同的消息延迟,有的五分钟,有的甚至一个小时。那是因为延迟一个小时的小伙伴已经在内网了,延迟很吓人。可以这样理解,一个灯泡串联了很多开关,必须把所有开关都合上,灯才会亮。延迟严重=小伙伴串联因为开关那么多,延迟小的小伙伴就是“开关”。
这里的“开关”是NAT超时。
怎么解决?首先要明确一点,你不相信任何设置能解决这个问题。手机上的任何设置都没有影响。无论重启卸载重装都没有效果!千万不要相信!
我们只能做两件事:
[*]向运营商索要公有IP,在移动可能很难实现。毕竟移动是租赁电信的骨干网,要公网IP是要收费的。很好理解,这个公网IP是可以解决的,就是在内网和私网之间有一个“开关”。这个超时可以忽略,所以不会有消息延迟。这种方法可以用百分数来解决问题。[*]Will brouter,这样做的目的是减少私网和公网之间的“切换”,但只能尽量减少,而不是像公网那样只有一个“切换”就能达到公网IP 80%的效果。不会要公有IP的小伙伴可以试试这个方法。总结:消息延迟是由于内网和外网直接“切换”太多,导致TCP连接频繁断开,产生消息不通知、延迟等问题。我们能做的只有索要公网IP和brouter,尽量减少中间设备的转发来解决推送延迟等问题。
其次,我对消息延迟的解释非常简短。里面要说的东西太多了。我只想告诉你主要原因和解决方法。况且国内的网络其实很复杂。大部分可能只是看视频聊微信,不然也不会有内网渗透技术。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白网-奉贤部落-奉贤免费信息发布平台  

GMT+8, 2025-8-22 00:50 , Processed in 0.053266 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表