Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在生产应用程序中使用APN_Ios_Notifications_Apn - Fatal编程技术网

Ios 在生产应用程序中使用APN

Ios 在生产应用程序中使用APN,ios,notifications,apn,Ios,Notifications,Apn,在小型环境和低容量通知中使用APN不是问题 问题(至少对我来说)是如何在一个大的、高容量的通知环境中处理APNS限制 APNS有一些限制(按设计),使其难以顺利工作 持续连接和断开APN可能被视为DOS攻击。这让我相信我需要每隔几秒钟批量发送通知,而不是“实时”发送 不知道通知是否已到达或成功发送。只有当出现错误时,才会返回,而当返回错误时,可能不会立即返回 当通知导致错误(例如,由于错误令牌)时,APN将关闭连接,该批中的其余通知将不会发送到其目的地,但有些通知可能仍会发送到APN,然后永远丢

在小型环境和低容量通知中使用APN不是问题

问题(至少对我来说)是如何在一个大的、高容量的通知环境中处理APNS限制

APNS有一些限制(按设计),使其难以顺利工作

  • 持续连接和断开APN可能被视为DOS攻击。这让我相信我需要每隔几秒钟批量发送通知,而不是“实时”发送

  • 不知道通知是否已到达或成功发送。只有当出现错误时,才会返回,而当返回错误时,可能不会立即返回

  • 当通知导致错误(例如,由于错误令牌)时,APN将关闭连接,该批中的其余通知将不会发送到其目的地,但有些通知可能仍会发送到APN,然后永远丢失(没有成功的反馈,因此不知道发生了什么)

  • 现实生活中的生产应用程序如何与APN一起解决上述问题?我是否应该保存我发送的所有通知,并为每个通知检查是否返回了错误?我应该让他们排队吗?我是否应该直面这样一个事实:将有一些通知不会被发送?连接之间的合理时间是多少,这样就不会被视为DOS攻击


    (目前我在Ruby中使用Houston来处理通知)

    这是我在

    管理连接的最佳实践

    您可以建立到同一网关的多个连接或到 多个网关实例。如果您需要发送大量 远程通知,通过连接将它们分散到多个 不同的网关。与使用 单连接:它可以让您更快地发送远程通知, 而且它可以让APN更快地交付它们

    在多个通知中保持与APN的连接打开; 不要反复打开和关闭连接。APNs快速治疗 连接和断开作为拒绝服务攻击。你应该 保持连接打开,除非您知道它将空闲一段时间 延长的时间段,例如,如果您只向 您的用户每天使用一次,每天使用一个新连接是可以的


    正如您所知,APNS服务不可靠。你可以用 亚马逊简单通知服务(Amazon SNS)

    它是一种快速、灵活、完全受管理的推送通知服务,允许您向大量收件人发送单个邮件或分散邮件。Amazon SNS使向移动设备用户、电子邮件收件人发送推送通知,甚至向其他分布式服务发送消息变得简单且经济高效。 请按照下面的url了解更多详细信息