【问题标题】:Push notification to millions of device + Apns + node.js向百万设备推送通知 + Apns + node.js
【发布时间】:2017-07-10 14:19:21
【问题描述】:

我的应用程序堆栈是 ios(前端)和 node.js(后端)。我必须向设备发送通知。在我的 node.js 部分中,我使用 apns 模块发送通知,它工作正常......

现在我必须一次发送大量通知,考虑到我有 10,000 台设备要通知,我遵循的逻辑是

我正在遍历 10,000 台设备并调用 apns 提供商。

1.为什么要使用这种for循环方法

我必须将每个通知详细信息存储在我的 mongodb 集合中,所以我采用了这种方法。

问题是某些设备收到通知并且太晚了(第二天)。

我也阅读了链接 https://www.raywenderlich.com/156966/push-notifications-tutorial-getting-started 说apns会拒绝。

上述方法是否正确也可以使所有通知传递者。

请分享您的想法。提前致谢。

【问题讨论】:

    标签: node.js mongodb notifications apple-push-notifications


    【解决方案1】:

    如果您需要在发送之前/之后处理每个单独的通知,我建议您从循环中更改设计,并让您查看 job queue

    使用这种设计模式,您不再需要循环通知并通过 APN 发送,而是将这些通知推送到队列/消息系统中,并让工作人员从队列中拉出并处理(通过 APN 发送并写入mongo) 通知。这种设计的好处在于,随着应用程序的增长,您可以添加更多的工作人员来处理增加的负载,而无需重写您的应用程序/架构。构建完成后,它可能看起来像这样:

    我个人将RabbitMQ 用于我的工作队列,但这个决定需要您自己研究。例如,如果您不想管理消息系统,可以查看 AWS Simple Queue Service 之类的内容。

    【讨论】:

      【解决方案2】:

      我认为循环遍历 10,000 个设备 ID 并调用 APNS 提供商并不是正确的前进方向。文档在这里严格说 node-apn readme file 重用 apn.Provider 而不是每次都重新创建它以实现最佳性能。

      如果您使用设备 ID 数组发送通知,而不仅仅是设备 ID,那么您将收到来自 APNS 的响应,其中提及每个设备的所有详细信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        • 2017-03-26
        • 1970-01-01
        • 2015-06-28
        • 1970-01-01
        • 2017-01-08
        相关资源
        最近更新 更多