向iOS用户发送多个推送通知

时间:2014-09-22 11:54:48

标签: ios objective-c push-notification apple-push-notifications

是否可以一次/立即向注册的iOS用户发送多个(10-15)通知? iOS推送通知有哪些限制?

2 个答案:

答案 0 :(得分:1)

是否可以一次/立即向已注册的iOS用户发送多个(10-15)通知?

不能同时向同一位用户发送10-15通知,请在apple docs阅读更多内容。

  

如果要向同一设备发送多个通知或   计算机在短时间内,推送服务将发送   只有最后一个。

但是,如果您打算同时向不同的用户发送推送通知,那么应该没有问题(我猜你正在寻找它)。

iOS推送通知有哪些限制?

如果你没有同心地向同一个用户发送它们,那么APN的推送通知没有限制。请参阅Push Notification Throughput and Error Checking

  

使用APN没有上限或批量大小限制。 iOS 6.1   新闻稿称,APN已经发送超过4万亿次推送   自成立以来的通知。它是在2012年WWDC上宣布的   APN每天发送70亿条通知。

     

如果您发现吞吐量低于每秒9,000次通知,   您的服务器可能会受益于改进的错误处理逻辑。

     

以下是使用增强型通知时如何检查错误的方法   格式。继续写入,直到写入失败。如果流已准备就绪   再写一次,重新发送通知并继续。如果是流   还没有准备好写作,看看该流是否可供阅读。

     

如果是,请阅读流中的所有内容。如果你得到零   返回字节,因为一个错误,连接被关闭了   无效的命令字节或其他解析错误。如果你得到六个字节   回来,这是一个错误响应,您可以检查响应   代码和导致错误的通知的ID。你需要   再次发送该通知后的每个通知。

     

一旦发送完所有内容,请最后一次检查是否有错误   响应。

     

删除连接可能需要一段时间才能完成   APN仅因正常延迟而返回您的服务器。这是可能的   在写入失败之前发送超过500个通知因为   连接被丢弃。大约1,700个通知写入可能会失败   只是因为管道已满,所以只需在那种情况下重试一次   流已准备好再次写作。

希望这有帮助。

答案 1 :(得分:0)

如果您在短时间内向同一设备或计算机发送多个通知,推送服务将仅发送最后一个通知。

这就是原因。设备或计算机确认收到每个通知。在推送服务收到该确认之前,它只能假设设备或计算机由于某种原因脱机并将通知存储在服务质量(QoS)队列中以供将来重新发送。这里的往返网络延迟当然是一个主要因素。

如“本地和推送通知编程指南”中所述,QoS队列为每个设备或计算机的每个应用程序保留一个通知。如果服务在发送队列中的通知之前收到另一个通知,则新通知将覆盖前一个通知。

所有这些都指出,意图是通知向应用程序指示提供商感兴趣的内容已经发生变化,应用程序应该向提供商签入以获取详细信息。通知不应包含其他地方也没有的数据,也不应该是有状态的。

由于您的设备未连接到该服务,因此未立即发送的任何推送通知都会排队等待将来重新发送。 “立即”当然需要考虑您的连接延迟。由于APN将在那时超时,外围病例将超过60秒。

了解更多信息,请点击here

相关问题