0

嗨,我想知道如果AWS lambda是足够好的技术,可以将广播推送通知发送到数十万个设备。使用AWS Lambda实施广播推送通知?

我已经实现了一个发送推送通知给APNS或FCM(新的GCM)的lambda函数,但它只是1:1。

但是现在我想同时发送相同的消息给多个设备 - 多达数十万个推送通知。

我一直在使用Microsoft Azure通知集线器,但我想要直接滚动我自己的。任何关于如何去做这件事的建议?

+0

出于好奇:Firebase主题中缺少哪些内容以防止您使用它来广播您的信息? https://firebase.google.com/docs/cloud-messaging/android/topic-messaging –

+0

@DiegoGiorgini我仍然需要实现iOS的逻辑,这意味着能够向firebase主题进行广播并不会让我的生活更轻松。 – Vlad

+0

Firebase是跨平台的。这是iOS的文档:https://firebase.google.com/docs/cloud-messaging/ios/topic-messaging –

回答

0

您可以使用SNS进行移动推送通知。您可以创建主题,然后创建端点(移动设备)并将所有这些端点订阅到该主题。一旦您向该主题发送通知,所有移动设备都会收到通知。

+0

谢谢,就像我刚才提到的那样,我已经在使用Microsoft Azure通知中心,而在天蓝的情况下,他们甚至没有话题限制(哪些是sns)。但无论如何,我的问题并不是寻找新的第三方推送服务,而是我自己建立这种服务的一种方式。更具体地说,我想知道我是否可以构建一个lambda函数并发送并行广播(所以我可以轻松地将它移动到另一个主机,以防我不希望它再次出现) – Vlad

+0

默认情况下有10.000 .000每个主题的订阅限额非常高,并且可以通过支持凭单增加。我可以理解你不希望供应商锁定,但考虑一下你可能花费在实施和维护这些东西上的每小时价格比你付给aws/azure /火力点。 –

+0

我明白,这就是为什么我一直在使用Azure。但我正在努力做到这一点,因为我的目标明显需要这样做。此外,SNS仅支持每个帐户最多100,000个主题,并且在达到限制时您必须申请更多。这非常有限。我亲自使用了所有的SNS/Azure/Firebase,并在其上运行了生产应用程序。如果我能得到关于如何自己构建这个问题的答案,我将不胜感激。 – Vlad

0

Brodcasting消息给成千上万的设备可以在内部实现,但需要注意几个边缘案件包括:

  1. 有时FCM或APN的服务可能会返回一个临时错误。您需要跟踪哪些设备未收到该消息并稍后重试。

  2. 以后重试可能意味着重试后,1秒或1分钟,2,4 ... 您的服务需要始终保持活动状态。

  3. 某些标记将变为无效(用户卸载应用程序)。您的服务需要跟踪这些数据并清理您的数据库

  4. 即使令牌未失效,最好从数据库中删除未登录系统的设备的令牌最近2个月或3个月。

由于上述限制,我不认为Lambda是构建此类基础架构的最佳平台。