【发布时间】:2015-01-23 09:05:17
【问题描述】:
我目前正处于计划阶段,以在我的基于 PHP 的 Web 服务中实现推送通知功能,该服务将支持多个应用程序。我当前的服务结构包括用于处理大量流量/请求负载的非持久性自动缩放服务器。
对于使用 APNS,我很难想出一个架构。 我已经阅读了APNS Getting Started。
Apple 声明需要保持连接以使用 APNS 进行推送,以避免被视为 DDOS 攻击:
在多个通知中保持与 APN 的连接处于打开状态;不要反复打开和关闭连接。 APNs 将快速连接和断开连接视为拒绝服务攻击。除非您知道连接会长时间处于空闲状态,否则您应该保持连接处于打开状态,例如,如果您每天只向用户发送一次通知,则可以每天使用一个新连接。
对于大量推送,Apple 声明:
“您可以与同一个网关或多个网关实例建立多个连接。如果您需要发送大量远程通知,请将它们分散到多个不同网关的连接上。与使用单个连接相比,这可以提高性能:它可以让您更快地发送远程通知,并让 APN 更快地传递它们。”
我在网站上发现了这篇关于 Persistent APNS connections 的帖子,上面写着“...看来经验法则是最多 15 个连接”
我的问题是:
1.我应该如何处理这些对多个应用程序的推送,而不会有被视为 DDOS 的风险?我不认为我可以使用我的非持久性自动缩放服务器,因为它们会在启动/关闭时连接/断开连接。我是否需要将连接分散到多个静态服务器上?
2.如果我将连接分散到多台服务器上,是否可以绕过这个 15 个连接的伪限制?如果每个应用都需要多个连接来发送大量推送通知,我觉得随着客户群的增长,我会超过 15 个。
【问题讨论】:
标签: php ios push-notification apple-push-notifications