如何在 aws lambda 函数中使用 Socket.io

How to use Socket.io in aws lambda functions

我正在为我的 Web 应用程序使用带有 aws lambda 函数的节点 js。我想在我的网络应用程序中使用网络套接字。 socket.io 是 node.js 非常有名的库。

但我不确定如何在 aws lambda 中使用它。谁能告诉我怎么做,是否可以使用 lambda 函数?

不能将 socket.io 与 lambda 一起使用。 Lambda 对其执行时间有限制,因此不可能与客户端保持打开连接。

不过你可以做的是使用 SNS。 Lambdas 可以向 SNS 主题发布消息,并且可以使用 SNS 调用 lambdas。

存在解决此问题的方法 - 它是 WebSockets over MQTT in AWS IoT。这样您就可以从打开的套接字连接中执行您的 Lambda 函数。

目前,AWS API Gateway supports WebSockets。 不幸的是,我没有设法通过 socket.io 进行连接,因为它会生成带有附加参数的自定义 URL:/?EIO=3&transport=polling&sid=

但我发现了微型 WebSocket 包装器套接字 (used this tutorial),而且工作正常!