苹果的推送通知服务可靠吗?
Posted
技术标签:
【中文标题】苹果的推送通知服务可靠吗?【英文标题】:Is Apple's push notification service reliable? 【发布时间】:2011-07-06 04:27:14 【问题描述】:我有一个使用推送通知的 ios 应用程序,但有时我没有在我的设备上收到通知,而我希望收到通知。我会收到所有后续通知。我与我的后端确认以确保所有通知都已成功发送。
所以我的问题是:APN 是否几乎 100% 可靠,或者我是否应该因为间歇性的 3G/wifi 连接而在这里和那里错过一些通知?
我认为 APNs 作为排队系统工作,如果在最初的几次内没有成功,则重试。
【问题讨论】:
【参考方案1】:APN 服务会将消息排队,但 Apple 不保证所有消息都会送达。当用户离线时,只有来自应用程序的 last 消息将保留在队列中。此外,旧消息可能会被删除。
Local and Push Notification Programming Guide
Apple 推送通知服务 包括默认的服务质量 (QoS) 组件执行 存储转发功能。如果 APN 尝试发送通知,但 设备离线,QoS 存储 通知。它只保留一个 每个应用程序的通知 设备:最后收到的通知 来自该应用程序的提供商。 当离线设备稍后 重新连接,QoS 转发 存储通知到设备。这 QoS 保留通知 删除之前的有限时间。
【讨论】:
感谢史蒂夫的及时回复。就我而言,我不认为我一次遇到旧消息或过多消息的问题。它可能更像是每 10-20 分钟一次。这是慷慨的。 安德鲁;那么,在您的情况下,如果用户离线(没有 WiFi 或 3G)20-40 分钟,他们可能不会收到 1 或 2 条消息。 xydev,我打算和我们的一些用户核实一下,看看这是否符合他们的经验。但是,如果不是这种情况,我认为修改我的问题的内容是不公平的。所以,是的,我将其标记为已回答。 感谢您的信息。很高兴在用户想知道他们的通知去哪里之前提前知道这一点!【参考方案2】:我有一个 azure 网站(以及移动服务、服务总线、数据库、活动目录等),可以将推送通知发送到 windows phone 和 iphone 上的 xamarin 应用程序。双方都收到第一个通知。第二个通知仅由 windows phone 接收,它不会发送到 iphone。如果我发送另一个通知,两者都会收到。因此,我对这种行为进行了更多调查,发现如果我用机枪发送一系列通知(每 2 秒手动键入一个),Windows Phone 会收到所有通知,但 iphone 只收到第一个通知。但是,如果我等待一段时间并发送通知,两个设备都会收到通知。下一个测试是查看是否总是以 5 分钟的间隔收到通知。发送了两条间隔五分钟的消息,windows phone 和 iphone 都收到了两个通知。
【讨论】:
以上是关于苹果的推送通知服务可靠吗?的主要内容,如果未能解决你的问题,请参考以下文章