【问题标题】:Implementing push notification using AWS lambda使用 AWS lambda 实现推送通知
【发布时间】:2017-12-14 01:11:03
【问题描述】:

我指的是图表

NodeJS 在这种情况下用作运行时,AWS Lambda 用作事件通知器(更新来自其他 lambda 或 DB)。

我的挑战是,“用户浏览器”也可以是移动客户端。 “API”应该作为一种服务,允许客户端(移动或网络)订阅、取消订阅或发布数据,仅此而已。

  1. lambda 能否作为具有“推送事件通知”功能的 API 直接向客户端工作?

  2. 是否有任何解决方案以及示例工作/源代码可以用作 POC?

  3. 下一个问题是,我如何扩展这种架构,因为它变成了有状态的(需要内存来记住客户端连接的状态)?

  4. 否则,它怎么可能在 DB 上保持客户端连接(使用 websocket 或 socket.io 等框架)?

【问题讨论】:

    标签: node.js architecture push-notification aws-lambda


    【解决方案1】:

    AWS 有 SNS 服务来发送通知,您可以从 Lambda 使用它。

    您也可以直接使用相关平台的通知系统,例如对于 iOS,Node 有一个“apn”模块,用于与 Apple 的 APNS 服务通信 - 它使用简单,可以在 Lambda 函数中实现。

    简而言之:

    1. 您的 iOS 应用程序注册 APNS,该应用程序使用 APNS 设备令牌进行响应。然后,您的应用应将其发送到您的 API/服务器进行存储。

    2. 然后您的 API 可以向 APNS 发送通知,引用任何设备令牌以及您从 Apple 开发者页面创建的私钥文件。

    3. APNS 会将通知发送到已注册的设备。

    Here 是一个很好的教程。

    您的其他查询可能应该是单独的问题。

    【讨论】:

      【解决方案2】:

      lambda 是否可以作为具有“推送事件通知”功能的 API 直接向客户端工作?

      是的!正如@AndyOS 所提到的,SNS 是一项非常棒的服务,其目的是发送通知。为避免重复回复,这里不再赘述。

      是否有任何解决方案以及示例工作/源代码可以用作 POC?

      否则,它如何在 DB 上保持客户端连接(使用 websocket 或 socket.io 等框架)?

      如果您正在寻找使用 websockets,我建议您看看 IoT (https://aws.amazon.com/iot)。 IoT 支持 MQTT 协议 (http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)。此页面还包含示例客户端代码,可能会帮助您引导您的解决方案。

      下一个问题是,我如何扩展这种架构,因为它变成了有状态的(需要内存来记住客户端连接的状态)?

      您可以在http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot查看物联网的服务限制。您需要根据应用的各种指标(每秒请求数、并发连接数等)来确定您的应用是否符合这些范围。

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 2019-02-18
        • 2018-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-26
        • 1970-01-01
        相关资源
        最近更新 更多