我最近开始使用 GraphQL,并且能够在 AWS Lambda 上成功设置它,为我提供了一个"无服务器"架构。但是,我想利用 GraphQL 订阅获得更多实时功能。
我知道 AWS Lambda 不允许 WebSockets,因为连接仅在函数运行或达到超时限制时持续存在。
但是有没有办法设置 GraphQL 后端,以便它可以利用订阅并将其保留在 AWS 服务中,并使其像"无服务器"应用程序一样扩展。
就像将 AWS Lambda 用于 GraphQL 查询和突变,然后使用 AWS 服务进行 GraphQL 订阅。
AWS AppSync 本周(11 月 29 日(宣布支持 graphQL 订阅。
AWS 上唯一支持 WebSockets 的无服务器服务是 IoT。我知道这个名字听起来很奇怪,但它适用于网络浏览器。
您需要将 AWS IoT 开发工具包捆绑在前面,以订阅和发布主题,并使用 Cognito 或 IAM 检索客户端的临时凭证。您可以设置限制,以便客户端只能订阅/发布特定主题。
我不知道 GraphQL 订阅的确切工作原理,但我想您的客户将订阅一个主题,并且每次数据更改时,都会触发一个 Lambda 函数。此 Lambda 将能够向主题发布通知,订阅此主题的所有客户端都将收到该消息。
我开始使用谷歌云功能,但后来转移到 zeit,它是无服务器的,但我也可以使用订阅。也许你也可以去那里看看