gpt4 book ai didi

azure-notificationhub - 间歇性 NotificationHub 传送失败,出现 NotificationSystemError : "InvalidToken"

转载 作者:行者123 更新时间:2023-12-03 17:37:37 25 4
gpt4 key购买 nike

我遇到了 NotificationHubs 的问题,偶尔通知无法以静默方式传递到 iOS 客户端。

我的通知中心设置为对 APNS 使用 token 身份验证(而不是旧证书身份验证)。

我将我的通知中心定价层更新为标准,以便我可以获得更多有关它的信息。大多数情况下(超过 95%)通知都能正确发送。我添加了日志记录来跟踪与通知中心排队的每个推送通知的 NotificationId。然后,当我收到失败警报时,我通过以下方法查找该特定通知的详细信息:

var details = await notificationHub.GetNotificationOutcomeDetailsAsync("<notification id>");

检查详细信息,我注意到当状态为“已完成”(意味着 NotificationHubs 已接收并处理操作)时,PnsErrorDetailsUri 具有非空值,表明传递通知存在问题:

enter image description here

在浏览器中导航到 PnsErrorDetailsUri 的值导致下载以下文件:

enter image description here

在这里,我注意到 NotificationSystemError 说有一个“InvalidToken”。这个 token 似乎应该与 Azure 和 APNS 之间的一些“幕后”通信有关。 这绝对不是因为 NotificationHubs 中注册的设备 token 无效。 我验证了 registrationId 仍在通知中心,并且它指向正确的设备。此外,从详细信息中获取原始 NotificationBody 并使用相同的标签重新提交它会导致新通知成功传递。

有谁知道 InvalidToken 可能指的是什么,或者这些间歇性 NotificationHub 传递失败的原因是什么?

更新:

我发现提到了不同的 NotificationSystemErrors here ,其中之一是我的 InvalidToken 错误。但是,我找不到这些错误的实际原因的描述。

最佳答案

我从来没有真正得到过为什么会发生错误的明确答案,但我似乎已经能够解决我的问题。

我们有 2 个独立的通知命名空间/中心,一个用于苹果生产通知,另一个用于苹果沙盒通知。我们有一个交换机,以便设备向正确的集线器注册。我调查了我们所有的注册,他们看起来都在正确的位置。

但是,在这次检查中,我注意到许多设备都有大量注册。这些注册中的每一个都有相同的苹果 PNS 标识符(这是一个有效的 token ),但对我来说,注册了数十个(在一个案例中为数百个)相同的 PNS token 似乎很奇怪。每个RegistrationID是相同的,除了它具有后(例如,1231231231235396312-6910179870480973035-1,1231231231235396312-6910179870480973035-2,1231231231235396312-6910179870480973035-3等)连字符的递增数。看起来每次我调用 NotificationHubClient.CreateAppleNativeRegistrationAsync 时,它都会添加一个新条目而不进行重复数据删除。清除这些重复项似乎解决了我遇到的问题。似乎 NotificationHubs 有时会因为链接到设备的注册过多而感到困惑。

我最终在我的一端添加了一些代码,以尝试暂时过滤掉重复项。但是,我希望 NotificationHubs 应该为我处理这个......

关于azure-notificationhub - 间歇性 NotificationHub 传送失败,出现 NotificationSystemError : "InvalidToken",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com