当批次中的一个被拒绝时缺少推送通知

Posted

技术标签:

【中文标题】当批次中的一个被拒绝时缺少推送通知【英文标题】:Missing push notifications when one in the batch is rejected 【发布时间】:2012-04-16 15:31:36 【问题描述】:

我正在使用 C# Windows 服务向 APNs 发送通知。它工作得很好。但是,今天我收到了来自 Apple 的错误 8(无效令牌)。

我添加了处理这种情况的代码(从数据库中删除了令牌,以便我不再发送任何通知)。但是,正如 Apple 所说,我正在通过同一个渠道发送一批通知......并且这些通知是在同一个连接上发送的(在他们返回响应之前我不知道它失败了),但我看到没有传递其他通知。

这正常吗?你怎么处理这个?我正在考虑存储所有通知,并在发送完所有通知后等待 5 秒钟……如果 Apple 没有发送任何通知,那一切都好……如果发生任何事情,请检查错误,删除失败的通知并发送剩余的,直到没有收到错误为止。

这有意义吗?

谢谢!

【问题讨论】:

【参考方案1】:

这正是我们最终在JavaPNS 中所做的事情。推送通知列表,针对该列表中的特定通知接收错误响应数据包,库使用相同列表重新开始发送通知,但从失败后的通知开始。循环直到没有收到错误响应数据包。

这确实意味着,如果您的列表中有多个无效消息,您将一遍又一遍地发送大量通知......但根据经验,这似乎是成功使用 APNS 的唯一方法。

【讨论】:

所以...您最终会向确实收到通知的用户发送重复通知?或者一旦失败,批次中没有人收到任何东西?

以上是关于当批次中的一个被拒绝时缺少推送通知的主要内容,如果未能解决你的问题,请参考以下文章

PHP发送推送通知连接失败:111连接被拒绝

当应用程序处于后台或终止状态时如何增加推送通知批处理计数

无法获得缺少的 gcm 推送通知

在 GCM 中发送推送通知时出现未经授权的错误

推送通知权限

PHP IOS 推送通知(权限被拒绝)