2011-07-06 49 views
15

我有一个iOS应用程序使用推送通知,但有一段时间我没有收到我的设备上的通知,当我希望收到一个。我会收到所有后续通知。我确认了我的后端,以确保所有通知都已成功发送。Apple的推送通知服务可靠吗?

所以我的问题是:是APNs 差不多 100%可靠或应该我只是希望错过一些通知这里和那里,因为间歇3G/WiFi连接?

我会认为APNs作为排队系统工作,如果在前几次没有成功,就会重试。

回答

22

APN服务会将消息排队 - 但Apple不保证传送所有消息。当用户离线时,只有来自应用程序的上次消息将保留在队列中。另外,旧消息可能会被删除。

Local and Push Notification Programming Guide

苹果推送通知服务 包括服务 (QoS)的组件的默认质量执行一个 存储和转发功能。如果APN 尝试传递通知,但是 设备处于脱机状态,则QoS将存储 通知。它在 设备上每个应用程序仅保留一条 通知:最后一条通知从该应用程序的提供商处收到 。 当离线设备后面的 重新连接时,QoS会将存储的通知转发给设备。 QoS在删除之前会保留限制期的通知。

+0

感谢您的及时回复,史蒂夫。在我的情况下,我认为我一次没有旧信息或太多信息的问题。这可能更像每10-20分钟一次。这是慷慨的。 –

+3

Andrew;那么对于你的情况,如果用户离线(没有WiFi或3G)20-40分钟,他们可能不会得到1或2条消息。 – Steve

+0

哦,真棒。很好的编辑。这可能是答案。 –

1

我有一个天蓝色的网站(和移动服务,服务总线,数据库,活动目录等),将推送通知发送到Windows Phone和iPhone上的xamarin应用程序。两者都收到第一份通知。第二个通知只能通过windows phone收到,它不会让它通过iphone。如果我发送另一个通知,则两者都会收到通知。因此,我更多地调查了这种行为,发现如果我机枪发出一系列通知(手持式每2秒输入一次),那么windows phone会收到它们,但iphone只收到第一个通知。但是,如果我等一会儿并发送通知,它就会被两个设备接收。下一个测试是查看通知是否总是以5分钟的间隔收到。发送了两条消息,间隔五分钟,windows phone和iphone都收到了两个通知。