iOS APNS“尽力而为”的回退

我似乎无法摆脱这种困扰。 如文件中所述的APNS具有尽力而为的交付,即不保证交付。 但是,如果我要在我的客户端/服务器应用程序中使用推送通知模式,我必须以某种方式使用它们。

通用模型如下所示:服务器上有新数据 – >然后服务器发送推送通知,通知客户端有新的数据可用 – >客户端下载新数据。

那么问题是,如果我不能100%地依靠通知来交付,我可以使用什么样的回退机制,以便我可以确保客户端接收服务器上可用的新数据? 如何确保客户使用APNS获得最新的数据?

如何确保客户使用APNS获得最新的数据?

只有 APNS没有办法做到这一点。 您的客户端需要在应用程序进入前台时查询您的服务器,以查看是否有新数据,而不pipe您是否丢失或接收到任何推送通知。

这一切都取决于你如何计划使用APNS。

比方说,你正在做一个应用程序,如eBay出售物品。 你有:
– 由多个用户投标
– 项目closures时间的倒计时

您不会使用APNS更新人员设备上的定时器,也不会通知他们当前的项目价格。 这些对于依靠尽力而为的交付来说太关键,而不是APNS的预期用途。

如果在这种情况下,应用程序每隔X秒轮询一次服务器以获取更新的信息,那将是最好的。 然后,您可以使用APNS获取非关键function,例如通知用户是否出价过高或是否赢得了该项目。