我设置了一个nodejs websocket AWS lambda端点(Api网关),它连接并可以回显消息。在初始连接期间,我将端点和 connection_id 保存到数据库中。这样就可以保存下来了。如果我打开浏览器客户端并连接到 websocket 端点,我可以成功连接,并成功从浏览器发送消息 - 我有代码来回显消息,并且它可以工作。
现在,在另一个提供 REST 端点的 Nodejs lambda 中,我有代码从数据库加载 connection_id 并执行以下操作:
// 'connection' is loaded successfully from DB (I log it and see the right values)
let api = new AWSSDK.ApiGatewayManagementApi({apiVersion: '2018-11-29', endpoint: connection.endpoint});
await api.postToConnection({
ConnectionId: connection.connection_id,
Data: JSON.stringify({ message: 'Hello World' })
}).promise();
Run Code Online (Sandbox Code Playgroud)
但是,REST 端点中的代码(上面的代码)始终在 postToConnection 中收到 410 错误。我知道连接仍然处于活动状态,因为我可以在测试上面的 REST API 之前连接到它并在浏览器客户端中 ping 它。
是否无法从非 websocket lambda 发布到 websocket 连接?