继续发送推送通知,丢弃 ios 的失败设备

Posted

技术标签:

【中文标题】继续发送推送通知,丢弃 ios 的失败设备【英文标题】:Continue sending push notification discarding failed device ones for ios 【发布时间】:2014-01-24 10:27:19 【问题描述】:

我需要一次(批量)向 1000 台(数千台)设备发送 ios 推送通知。 我需要的是,

如果某些设备令牌(比如第 100 个令牌)发生错误, 我只需要放弃向该令牌发送推送通知并从下一个设备令牌(第 101 个)继续。

在我的数据库中,有生产令牌,但也有一些是开发令牌。我不知道其中哪些是生产代币,哪些是开发代币。我正在使用生产证书。我认为,由于一些开发令牌,推送不会发送到所有设备。

那么,有没有可能区分开发或生产?或者,如果一个令牌发生错误,则简单地丢弃并继续下一个令牌。我正在使用 php 作为推送通知的服务端。

【问题讨论】:

【参考方案1】:

找到开发令牌的唯一可靠方法是检测从 Apple 返回的无效设备令牌的错误响应(假设您以增强的二进制格式发送通知)。

如果您知道在开发中测试 APNS 时使用的设备的完整列表,另一种方法是尝试在这些设备上安装开发版本,并在注册到 APNS 时获取开发令牌。这仅在您拥有少量此类设备时才实用。

【讨论】:

如何检测错误。我的意思是如何准确知道哪个令牌无效?而且,在检测到无效令牌后,我应该删除这些令牌还是忽略它们?我不能做你的另一种方式,因为有 1000 多个用户。你能建议我如何处理这个问题吗?提前谢谢..!! @BarcelonaTsandesh 即使有 1000 多个用户,我也应该想象用于开发的设备数量要少得多。至于检测错误,以增强格式发送带有标识符的消息。如果您收到错误响应,它包含一个消息 ID,并且您可以从该 ID 中找到该消息的设备令牌(如果您将该数据存储在您的服务器中)。最好删除无效令牌,不要将开发令牌与生产令牌混合在同一个数据库中。 感谢您的想法。但是你能帮我检测无效的令牌吗?任何教程、文档或示例代码?? @BarcelonaTsandesh Check this out.

以上是关于继续发送推送通知,丢弃 ios 的失败设备的主要内容,如果未能解决你的问题,请参考以下文章

AWS - SNS 端点为 iOS 自行禁用 - Apple 设备(推送通知失败)

Android 推送通知失败(注册无效)

我们可以从 iOS 设备向 APNs 发送推送通知吗?

推送天蓝色通知中心的通知

使用 Redth PushSharp 发送 iOS 推送通知失败

如何向多个设备(iOS)发送推送通知?