【发布时间】:2022-06-22 19:42:21
【问题描述】:
我有一个 socket.io 应用程序,我想将其转换为无服务器应用程序。这就是应用程序的作用,因此您可以了解它的作用:
经理使用 socket.io 从桌面应用程序触发“收到货件通知”。 socket.io 服务器应用程序接收到通知并立即查询数据库 (DynamoDB) 以获取有关应如何处理此类通知的“说明”。这些指令是一个对象数组。每个对象都是关于需要通知谁的指令。想象一下,说明中的内容是这样的:
- 在他们的计算机上联系用户 12345
- 向用户 12345 发送推送通知。
- 在他们的计算机上联系用户 67890。
如果需要在其计算机上联系用户,则服务器应用程序会再次查询数据库以获取该用户的套接字 ID,该 ID 在用户登录时存储在那里。检索此值后,socket.io 服务器应用程序发出“Shipment-Received”事件,然后由桌面应用处理。
如何使用无服务器工具来做到这一点?我一直在查看 AWS 文档,但找不到明确的答案。我看到 AWS AppSync 现在使用 websockets,但我不知道该怎么做。也许在触发通知后,我可以使用 Lambda 函数从 DynamoDB 检索指令?但是,我如何获得我需要联系的人的 websocket ID?如何实时联系用户?我想也许可以使用 GraphQL 订阅,但我不知道该怎么做。
最好的方法是什么?
【问题讨论】:
标签: amazon-web-services socket.io aws-amplify aws-appsync aws-serverless