我听说推送通知不可靠。有什么可以替代呢?
我想要处理的用例是: 1.我有一个应用程序,将由三种类型的小组共享。每组包含一组人员。 2.请求由第一类组提交,并由第二类组提供服务。因此,所有属于第二组的人都应该得到通知,除此之外没有人应该收到通知。 3.同样,A请求由第一类组提交,它将由第三类组提供服务。因此,所有属于第三组的人都应该得到通知,除此之外没有人应该收到通知。 即使是第二组人也可以向第三组提出请求。
请提供您的想法,我应该如何处理这些情况。
答案 0 :(得分:5)
推送通知依赖于网络(3G / WiFi)状态来发送通知。此外,Apple推送通知服务器没有回复,保证通知的发送。说完所有这些东西...... iPod touch对于发送通知非常不可靠,因为它没有3G;第二,为了节省电池,它的通知在内部关闭了一段时间....
另一种替代方法是在后台线程中轮询服务器以进行任何修改。但这只适用于app运行时。
另一种选择可以是编写我们自己的APNS基础设施。
答案 1 :(得分:2)
你说推送通知不可靠是对的。
首先,如果设备未连接到互联网,则APN仅在设备再次连接时保留一个推送通知(从提供商发送的最后一个通知)。由于在您的服务器将通知发送到APNS之后无法确定是否已发送通知,因此您甚至无法尝试将通知排入队列。
除此之外,如果您的应用依赖于PN,则用户可以通过关闭通知轻松破坏其功能。
所以你是绝对正确的,如果你要发送的数据很关键,那么就不应该使用推送通知。但我相信你的问题确实无法解决。你根本不能依赖它们来让你的应用程序发挥作用。
我认为最好的方法就像电子邮件应用程序,例如,当您启动应用程序时,您可以下载电子邮件,无论您是否打开了PN,并且PN只会通知您新的电子邮件,即使它是不保证你会得到它。
答案 2 :(得分:1)
没有其他选择,因为Apple做了一些非常低级别的沟通。您需要与移动提供商一起构建类似通知服务的东西。
那就是说,我不认为这项服务不可靠。也许你应该检查你的实施。
答案 3 :(得分:1)
你是对的,APN不保证交付:从他们的docs,他们说:
重要:由于无法保证交付,您不应该依赖 用于向其提供关键数据的远程通知工具 通过有效载荷的应用程序。永远不要包含敏感数据 有效载荷。您应该仅使用它来通知用户新数据 是可用的。