Node.js 使用AWS lambda实现推送通知

Node.js 使用AWS lambda实现推送通知,node.js,architecture,push-notification,aws-lambda,Node.js,Architecture,Push Notification,Aws Lambda,我指的是图表 在这种情况下,NodeJS用作运行时,AWS Lambda用作事件通知程序(更新来自其他Lambda或DB) 我的挑战是,“用户浏览器”也可以是移动客户端。“API”应该作为一种服务,允许客户端(移动或web)订阅、取消订阅或发布数据,而不是其他 lambda是否可以作为API,直接向客户端“推送事件通知” 是否有任何解决方案和示例工作/源代码可以用作POC 下一个问题是,既然这样的体系结构变得有状态(需要内存来记住客户端连接的状态),我如何扩展它 或者,它在DB上持久化客户端连

我指的是图表

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

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

  • lambda是否可以作为API,直接向客户端“推送事件通知”

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

  • 下一个问题是,既然这样的体系结构变得有状态(需要内存来记住客户端连接的状态),我如何扩展它

  • 或者,它在DB上持久化客户端连接的可能性有多大(使用websocket或socket.io之类的框架)


  • AWS提供SNS服务来发送通知,您可以从Lambda使用该服务

    您还可以直接使用相关平台的通知系统,例如,对于iOS,Node有一个“apn”模块,用于与苹果的APNS服务进行通信-它使用简单,可以在Lambda功能中实现

    简言之:

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

  • 然后,您的API可以向APN发送通知,引用任何设备令牌,以及您从Apple Developer页面创建的私钥文件

  • APN将向注册设备发送通知

  • 这是一个很好的教程

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

    lambda是否可以作为API,直接向客户端“推送事件通知”

    对!!正如@AndyOS所提到的,SNS是一个非常好的服务,它实际上是用来发送通知的。为了避免重复回答,我将不在这里详细介绍

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

    或者,它在DB上持久化客户端连接的可能性有多大(使用websocket或socket.io之类的框架)

    如果您希望使用WebSocket,我建议您看看IoT()。IoT支持MQTT协议()。此页面还包含可能有助于引导解决方案的示例客户端代码

    下一个问题是,既然这样的体系结构变得有状态(需要内存来记住客户端连接的状态),我如何扩展它

    您可以在查看物联网的服务限制。您需要根据应用程序的各种指标(每秒请求数、并发连接数等),确定应用程序是否符合这些界限