Apple APNS 最多只允许20
来自您的服务器的最大连接,那么像 WhatApp 这样的应用程序如何能够每秒传递如此大量的消息呢?
即使他们可以使用多台服务器,但假设他们有 500 万活跃用户发送消息,他们还需要 25 万台服务器,这听起来很疯狂,对吧?
这里的诀窍是什么?
Apple APNS 最多只允许20
来自您的服务器的最大连接,那么像 WhatApp 这样的应用程序如何能够每秒传递如此大量的消息呢?
即使他们可以使用多台服务器,但假设他们有 500 万活跃用户发送消息,他们还需要 25 万台服务器,这听起来很疯狂,对吧?
这里的诀窍是什么?
这很简单:您不需要每个用户一个连接。
您可以为每个 APNS 连接发送多条消息。每条消息都可以发送到不同的设备。最大有效载荷长度为 256 字节加上 45 字节的开销;一个 10Mbit 的连接每秒可以处理至少4100 条消息,或者大约 250k/分钟,或者每个用户每小时大约 3 条消息。
平均“活跃用户”每小时发送超过 3 个吗?很难说。“活跃”可能意味着他们在当月发送了一条消息;这种分布有很长的尾巴。
无论哪种方式,这都是针对单个10M 连接的。我不确定苹果方面有多少争论,但如果你能在没有太多大惊小怪的情况下超过 50M,我也不会感到惊讶。
此外,当应用程序处于前台时,他们几乎肯定会使用自己的服务器,如果他们很聪明,他们可以在应用程序后台运行后保持连接打开几分钟(并且仅在连接关闭后使用推送通知)。