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

标题: 苹果消息延迟怎么办(苹果手机延迟消息解决办法) [打印本页]

作者: [db:作者]    时间: 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,尽量减少中间设备的转发来解决推送延迟等问题。
其次,我对消息延迟的解释非常简短。里面要说的东西太多了。我只想告诉你主要原因和解决方法。况且国内的网络其实很复杂。大部分可能只是看视频聊微信,不然也不会有内网渗透技术。




欢迎光临 小白网-奉贤部落-奉贤免费信息发布平台 (http://www.ts-xiangyue.com/) Powered by Discuz! X3.2