Apple Push Notification Service 发送重复通知
Posted
技术标签:
【中文标题】Apple Push Notification Service 发送重复通知【英文标题】:Apple Push Notification Service sends repeated notifications 【发布时间】:2012-10-16 16:21:35 【问题描述】:我有一个从 Apple Push Notification Service 接收通知的 iPhone 应用程序。我正在使用 (Easy APNS for php) 使用每 15 分钟运行一次的 Cron 作业推送通知。 我注册了大约 400 台设备正在使用我的应用程序。
问题: 当我想向我的用户发送新通知时,他们会多次收到通知,而且总是一样的。我不知道为什么 Apple 会多次发送相同的通知(比如 5 或 6 次)
一些额外的信息:
Easy APNS 的工作原理是一次获取 100 条消息(就像一个批次一样),所以我想将 400 条消息发送给我的所有用户需要 1 小时。 在我的apns_messages表中,每台设备的消息只有一个条目,所以理论上没有重复的消息。似乎同一个条目被处理了很多次。我找不到多次收到相同通知的原因。这对用户来说也很烦人。
【问题讨论】:
【参考方案1】:好的,我知道发生了什么。 EasyAPNS 抓取 100 条消息并循环播放它们。在每个循环中,y 连接到两个 Apple 服务(推送通知服务和反馈服务)。在我的服务器中,防火墙阻止了反馈服务的端口,在尝试连接它时会超时。所以 php 执行崩溃了,当它已经发送时,消息被保留为“排队”。所以同一条消息被处理了很多次!
【讨论】:
【参考方案2】:可能是您在发送后没有从消息表中删除消息吗? Easy APNS 似乎将 apns_messages 表中的消息排队,直到准备好发送。因此,如果他们在发送后仍留在该表中,Easy APNS 会看到并再次发送。
【讨论】:
该表有一个名为 status 的列,它是一个 emum Queued, Delivered, failed。当 EasyAPNS 发送消息时,立即将其切换为已传递。以上是关于Apple Push Notification Service 发送重复通知的主要内容,如果未能解决你的问题,请参考以下文章
Apple Push Notification - 无法回调 didRegisterForRemoteNotificationsWithDeviceToken
Send push notification on Apple (APNS) on c#.net
Apple Push Notification Service 发送重复通知
Apple Push Notification Service 用户响应