node.js - 我应该何时打开和关闭 websocket 连接以在另一个应用程序内进行聊天?
问题描述
我正在使用无服务器、AWS API Gateway 和 AWS Lambda 来尝试发送实时消息,并且我发现了一些例子来说明这个概念。我在思考应该在我的应用程序中打开 WebSocket 连接的位置时遇到问题。
我创建了一个 GraphQL API 和一个多页面,我希望在所有页面中嵌入一个实时聊天应用程序,类似于你的 Facebook 或 WhatsApp 或其他任何东西。我已经实现了 GraphQL 突变和查询,以创建用户和消息所在的线程,这些线程也有自己的突变和查询,我还设置了 4 个 Lambda 函数。一个用于 GraphQL 服务器,对于 WebSocket,我有打开、关闭和发送消息。
我曾考虑在执行 GraphQL 服务器时打开一个 WebSocket 连接,但我觉得这会使 Lambda 保持运行直到连接关闭,我认为这违反了无服务器框架理念和最佳实践,因为 Lambda 函数必须等待 WebSocket 连接关闭,以便 Lambda 完成其执行。但与此同时,我觉得一个实时聊天应用程序可以在所有页面上的另一个应用程序上工作,它应该保持不变吗?后端是否还有其他选项可以打开连接?
另一种选择是将它连接到事物的前端?
解决方案
推荐阅读
- javascript - 按 2 个不同的属性对数组进行排序/分组
- linux - 在 Linux 中创建一个给定大小的文件并用用户数据模式填充它
- elasticsearch - Elasticsearch 中范围查询的奇怪行为
- azure - ADF 限制:一个管道中的 COPY 数据活动数量?
- botframework - Bot Framework 技能 - 无需身份验证即可调试
- postgresql - 如何在 PostgreSQL 中使用单个查询将两条相关记录插入两个不同的表中?
- .net - .NET Core BackgroundService 只运行一次
- matlab - 如何在 MATLAB 中将 3D 坐标 (x,y,z) 转换为 .STL 文件?
- python - SyntaxError: f-string: 期待 '}'
- html - Visualforce:仅当值不为空时才呈现抛出异常