首页 > 解决方案 > 我应该何时打开和关闭 websocket 连接以在另一个应用程序内进行聊天?

问题描述

我正在使用无服务器、AWS API Gateway 和 AWS Lambda 来尝试发送实时消息,并且我发现了一些例子来说明这个概念。我在思考应该在我的应用程序中打开 WebSocket 连接的位置时遇到问题。

我创建了一个 GraphQL API 和一个多页面,我希望在所有页面中嵌入一个实时聊天应用程序,类似于你的 Facebook 或 WhatsApp 或其他任何东西。我已经实现了 GraphQL 突变和查询,以创建用户和消息所在的线程,这些线程也有自己的突变和查询,我还设置了 4 个 Lambda 函数。一个用于 GraphQL 服务器,对于 WebSocket,我有打开、关闭和发送消息。

我曾考虑在执行 GraphQL 服务器时打开一个 WebSocket 连接,但我觉得这会使 Lambda 保持运行直到连接关闭,我认为这违反了无服务器框架理念和最佳实践,因为 Lambda 函数必须等待 WebSocket 连接关闭,以便 Lambda 完成其执行。但与此同时,我觉得一个实时聊天应用程序可以在所有页面上的另一个应用程序上工作,它应该保持不变吗?后端是否还有其他选项可以打开连接?

另一种选择是将它连接到事物的前端?

标签: node.jsamazon-web-serviceswebsocketgraphqlserverless

解决方案


推荐阅读