我有一个可以向其发送推送通知的应用程序。当用户在应用程序中保存某些内容时,保存时间将被放置在“ active_users”表中我服务器上的mysql数据库中。我的服务器运行脚本,以查看时间是否已用尽,如果有,它将向设备发送通知。
看到这里很奇怪的是,在系统的第一次测试期间,推送通知到达了我的手机,并且一切顺利。我进行了一些更改,然后再次尝试,但是现在似乎什么也没有发生。
真正奇怪的是,我有一个push_queue(数据库中的表),当需要推送消息时,会在其中放入要推送的消息(令牌和有效负载)。当我运行测试时,该消息将添加到push_queue,并且在我的日志文件中将一切记录为正常。
现在的问题是:每个设备令牌只能发送一个推送通知吗?这是我唯一能想到的解决方案。
这是我的日志文件中的粘贴:http://pastebin.com/whkpV3F6
如您所见,这是两条消息中使用的相同设备令牌。
提前致谢。
最佳答案
令牌应该对要发送到设备的任何数量的消息都有用,除非已从设备中删除了该应用程序,或者该应用程序已从Apple的服务器上收到了新的令牌。
如果删除了该应用程序,则会在设备的后台通知Apple,并且令牌将失效。您必须“偶尔”轮询Apple以获取此反馈,并告诉您不应再向其发送消息的令牌。您必须轮询反馈服务,否则Apple将使您发送推送通知的能力失效。
您的应用需要在每次启动时向Apple请求推送通知服务。您每次取回的令牌可能永远不会更改,但是可以更改。然后,您需要确保服务器具有正确的令牌。
综上所述,在这种情况下,您的令牌不太可能更改,因为您只是在测试。
更有可能的是,该消息只是未传递而已...我不认为推送通知会像SMS的可靠性一样得到保证。我也不认为Apple会阻止您多次发送同一条消息,但是我对此可能是错的。如果重复的消息快速连续发送,则在这方面可能会有一些限制。不确定那一个。
关于ios - APNS:多次发送同一条通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7795556/