在小型环境和少量通知中使用 APNS 不是问题。
问题(至少对我而言)是如何在大量的通知环境中处理 APNS 限制。
APNS 有一些限制(按设计),这使得顺利工作变得更加困难
从 APNS 不断连接和断开连接可能被视为 DOS 攻击。这让我相信我需要每隔几秒钟批量发送通知,而不是“实时”发送
不知道通知是否已到达或成功发送。只有出现错误时才会返回,返回时可能不会立即发生。
当通知导致错误(例如由于令牌错误)时,APNS 将关闭连接,并且该批次中的其余通知将不会发送到它们的目的地,但有些可能仍会发送到 APNS 和然后永远失去(没有关于成功的反馈,所以不知道他们发生了什么)。
现实生活中的生产应用程序如何与 APNS 一起解决上述问题?我是否应该保存我发送的所有通知并为每个通知检查是否返回了错误?我应该把它们排成队列吗?我是否应该面对无法发送通知的事实?连接之间的合理时间是多少,因此它不会被视为 DOS 攻击?
(目前我在 Ruby 中使用 Houston 来处理通知)