【发布时间】:2019-09-20 13:09:13
【问题描述】:
我已经使用 API Gateway 创建了一个 Web Socket Api,并且能够将客户端连接到它。
另外,我可以通过指定ConnectionId 并使用以下代码向连接的客户端发送消息:
const AWS = require('aws-sdk');
let apiGatewayManagementApi = new AWS.ApiGatewayManagementApi({
apiVersion: '2018-11-29',
endpoint: 'https://XXXXXXXXX.execute-api.sa-east-1.amazonaws.com/dev/',
region: 'sa-east-1'
});
const params = {
ConnectionId: 'YYYYYYYYYYYYY',
Data: 'test'
};
apiGatewayManagementApi.postToConnection(params, function (err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
} else {
console.log(data); // successful response
}
});
问题是我不需要区分客户端,因此我不想跟踪每个客户端的 ConnectionId,但如果我在发送消息时将其删除,我会收到以下错误: Missing required key 'ConnectionId' in params
有没有办法向所有连接的客户端发送消息(不指定任何 ConnectionId)?
【问题讨论】:
-
不可能,我想是的!您需要获取所有连接 ID,然后使用循环向所有客户端发送消息。
标签: javascript websocket aws-lambda aws-sdk aws-api-gateway