2010-12-07 60 views
2

我听说推送通知不可靠。有什么可以替代呢?推送通知替代品

我想处理的用例是: 1.我有一个应用程序,它将由三种类型的组共享。每个小组都包含某些人员。 2.请求由第一类组提交,并由第二类组提供服务。因此,应该通知属于第二组的所有人员,除此之外没有人应该收到通知。 3.同样,一个请求由第一类组提交,它将由第三类组提供服务。因此,所有属于第三组的成员都应该得到通知,除此之外,任何人都不应该收到通知。 4.即使第二组人员也可以向第三组提交请求。

请提供您的想法,我应该如何处理这些情况。

+0

谁告诉你推送通知不可靠?如果他们不可靠,那么你的代码可能有错误... – gcamp 2010-12-07 23:56:24

+0

我们已经在几个项目中编码了推送通知,有时它没有按时通知。 – Abhinav 2010-12-08 03:55:27

回答

5

推送通知依赖于网络(3G/WiFi)的存在来传递通知。此外,苹果推送通知服务器也没有回应,保证通知的发送。说完所有这些事情...... iPod touch对通知的传递极其不可靠,因为它没有3G;第二,为了节省电池它的通知内部关闭了一段时间......

一个替代方案是保持轮询服务器在后台线程进行任何修改。但是这只会在应用程序运行时才起作用。

另一种选择可以写我们自己的APNS基础设施。

+2

小改正:不是通知关闭,当设备处于待机状态时,WiFi将关闭。它只激活每隔几分钟的WiFi来检查新的通知,邮件等。 – 2010-12-08 21:46:43

1

由于苹果的沟通非常低,所以没有其他选择。您需要与移动提供商一起构建通知服务。

这就是说,我不认为这项服务是不可靠的。也许你应该检查你的实现。

2

你说得对,推送通知并不可靠。
首先,如果设备未连接到互联网,则APN只会在设备再次连接时发送一个推送通知(从提供商发送的最后一个通知)。由于无法确定在服务器将它们发送给APNS后是否已发送通知,因此您甚至无法尝试在您的端点排队通知。

除此之外,如果您的应用程序依赖于PN,用户可以通过关闭通知轻松地打破它的功能。

所以你是绝对正确的,如果你想发送的数据是关键的,那么你不应该使用推送通知。但我相信你的问题真的没有解决办法。你根本无法依靠他们为你的应用程序工作。

我认为最好的方法就像电子邮件应用程序,例如,当您启动应用程序时,您可以下载您的电子邮件,只要您打开或关闭个人识别码,并且个人识别号只是通知您新的电子邮件,即使这并不能保证你会得到它。

1

你是正确的,APN的不保证送货:从他们的docs,他们说:

重要:因为快递不能保证,你不应该在远程通知设施的依赖 通过有效载荷将关键数据传送至应用程序 。并且绝对不要在敏感数据中包含 有效载荷。您应该仅使用它来通知用户新数据 可用。