我正在为IOS设备实现远程推送通知的提供程序。我还阅读了关于Apple开发者网站
的最佳实践指南的以下内容在多个通知中保持与APN的连接; 不要反复打开和关闭连接。 APN迅速对待 连接和断开作为拒绝服务攻击。你应该 保持连接打开,除非你知道它会闲置一个 延长的时间段 - 例如,如果您只发送通知 您的用户每天可以使用一次新连接。
在实现建立连接的逻辑之后,我决定测试它并让我的服务器运行一段时间。从晚餐回来后,我看到苹果推送通知服务断开了我的服务器。在我的服务器运行期间,它连接到apple推送通知服务但空闲。我读到另一个问题,即服务不可靠,间歇性地断开连接。我想知道是否有人知道连接需要多长时间才能使您与服务断开连接,以及是否有人可以提出一些处理断开连接的最佳实践。
我主要担心的是Apple会在DDOS攻击中快速连接和断开连接。因此,我打算尽可能长时间地保持连接打开,并在断开连接时重新连接到服务。这是处理APNS的常见做法吗?
[UPDATE 4/5/2016] 我实现了重新连接逻辑,但现在似乎遇到了一个我不了解服务的问题。根据Apple的说法,他们希望我们通过多个通知保持与APN的连接。但是,在通过连接发送第一个通知并将其显示在我的设备上后,通过该连接发送的其他通知似乎不会通过。我每个流只能发送一个请求吗?我应该在发送更多请求时逐步打开流吗?