使用 Apple 的推送通知服务 (APNS) 避免重复

Posted

技术标签:

【中文标题】使用 Apple 的推送通知服务 (APNS) 避免重复【英文标题】:Avoiding duplicates with Apple's Push Notification Service (APNS) 【发布时间】:2013-09-25 08:45:04 【问题描述】:

我们参考了 Apple 的 TN2265 (https://developer.apple.com/library/ios/technotes/tn2265/_index.html) 在我们的应用程序中实现错误处理,它向我们的用户发送推送通知。文档建议我们异步处理错误,具体来说:

如果您返回 6 个字节,这是一个错误响应,您可以检查响应代码和导致错误的通知的 ID。您需要再次发送该通知之后的所有通知。

是不是在一系列通知中,如果一个失败,那么它后面的所有通知都保证失败?如果不是,那么如何避免向给定设备重复发送相同的通知?

【问题讨论】:

【参考方案1】:

是的,在这种情况下,它之后的所有通知都保证不会被 APNS 服务器处理。

当 APNS 检测到无效消息时,它会将错误响应写入套接字并关闭连接。在您收到该错误响应之前,您可能已经在同一个套接字上向 Apple 发送了更多消息。他们都不会到达苹果。一旦你创建了一个新的套接字,你应该重新发送它们。

没有重复的风险。

【讨论】:

以上是关于使用 Apple 的推送通知服务 (APNS) 避免重复的主要内容,如果未能解决你的问题,请参考以下文章

来自 APNS(Apple 推送通知服务器)的反馈服务

Apple 推送通知服务 (APNS):反馈服务响应缺少字节?

APNS Apple 推送通知服务未收到来自 Apple 的成功消息

为 Apple 推送通知服务 (APNS) 设置 linux 提供程序

APNS Apple 推送服务通知未收到

Apple 的 APNS 服务器是不是允许我向我的 Pass 用户发送随机推送通知?