将通知推送到数百万设备+;Apns+;node.js
我的应用程序堆栈是ios(前端)和node.js(后端)。我必须向设备发送通知。在my node.js部分,我使用apns模块发送通知,工作正常 现在我必须发送大量通知,比如我有10000个设备要通知,我遵循的逻辑是 我正在浏览10000台设备并致电apns提供商 1.为什么采用这种for-loop方法 我必须在我的mongodb集合中存储每个通知细节,所以我采用了这种方法 问题是某些设备接收到通知,但太晚了(第二天) 我也读了链接 说apns会拒绝 上述方法是否正确,是否也可以通过任何方式使所有通知传递者都能收到通知将通知推送到数百万设备+;Apns+;node.js,node.js,mongodb,notifications,apple-push-notifications,Node.js,Mongodb,Notifications,Apple Push Notifications,我的应用程序堆栈是ios(前端)和node.js(后端)。我必须向设备发送通知。在my node.js部分,我使用apns模块发送通知,工作正常 现在我必须发送大量通知,比如我有10000个设备要通知,我遵循的逻辑是 我正在浏览10000台设备并致电apns提供商 1.为什么采用这种for-loop方法 我必须在我的mongodb集合中存储每个通知细节,所以我采用了这种方法 问题是某些设备接收到通知,但太晚了(第二天) 我也读了链接 说apns会拒绝 上述方法是否正确,是否也可以通过任何方式使所
请分享你的想法。提前感谢。如果您需要在发送之前/之后处理每个通知,我建议您对循环进行设计更改,并让您查看 使用此设计模式,您可以将这些通知推送到队列/消息传递系统中,并让工作人员从队列中提取并处理(通过APN发送并写入mongo)通知,而不是仅通过APN循环通知和发送。这种设计的好处在于,随着应用程序的增长,您可以添加更多的工作人员来处理增加的负载,而无需重写应用程序/体系结构。一旦建成,它可能看起来像这样:
我个人使用我的工作队列,但这个决定是你需要自己研究的。例如,如果您不想管理消息传递系统,您可以查看类似的内容。我认为通过10000个设备ID循环并调用APNS提供商不是正确的前进方向。这里的文档严格要求重复使用apn.Provider,而不是每次都重新创建它以获得最佳性能 如果您使用设备id数组(而不仅仅是设备id)发送通知,那么您将收到APN的响应,其中提及每个设备的所有详细信息