APNS中的重复通知标识符是否安全

时间:2014-06-04 08:13:27

标签: ios push-notification apple-push-notifications

根据APNS的the official documentation,我们通过其中的通知标识符识别消息。

由于我们有责任决定通知标识符的价值,我们可以并且不可避免地会重复通知标识符。考虑到来自APNS的错误响应数据包,我怀疑是否可以安全地拥有重复的通知标识符。

这是我的问题:

  • 问题1:对于相同的设备令牌具有相同的通知标识符是否安全?
  • Q2:如果Q1的答案为否,那么差异设备令牌呢?
  • 问题3:从差异连接获得相同的通知标识符是否安全?

3 个答案:

答案 0 :(得分:2)

对于通过同一套接字发送给APNS的每个通知,通知标识符应该是唯一的。这样,如果您从该套接字读取错误响应,您将知道哪条消息导致了错误(如果错误类型是无效的设备令牌,您将能够识别无效令牌并将其删除)。

因此,只有在打开新套接字时才应重用通知标识符。如果您同时打开多个套接字,则应使用不同的通知标识符,或者如果不是,则必须能够根据通知标识符+套接字识别通知。

至于你的3个具体问题:

Q1:不,因为如果您向同一令牌发送了两条消息,并且其中一条消息出现了无效设备令牌以外的错误,那么您将无法知道这两条消息中的哪一条导致了错误。您还无法知道哪些消息需要重新发送。

Q2:不,由于与Q1相同的原因,此外,如果您收到设备令牌无效的错误,您将无法知道哪个设备令牌无效。

问题3:我不确定不同提供商的意思。如果您引用管理与APNS的不同连接并向同一应用程序发送通知的不同服务器,答案是肯定的,因为在给定套接字上收到的响应包含先前通过该套接字发送的消息的标识符。

答案 1 :(得分:1)

通知标识符仅供您区分发送的不同通知。

push notification payload没有标识通知的属性 - 它必须是您从服务器发送的自定义属性,以标识您自己的通知。 所以Q1的答案是肯定的!

答案 2 :(得分:0)

通知标识符有助于识别您的应用程序是什么类型的通知。因此,对于相同的设备令牌具有相同的通知标识符是安全的。所以Q2,现在不是问题。对于Q3,很可能为不同的提供商提供相同的通知标识符。