我正在使用Websocket API网关,并且尝试使用 ApiGatewayManagementApi 将消息发送到连接。
首先,我对其进行配置:
const apigwManagementApi = new AWS.ApiGatewayManagementApi({
apiVersion: "2018-11-29",
endpoint: connectionsUrl
});
这是postToConnection()的代码
try {
const params = {
ConnectionId: connection.connectionId,
Data: JSON.stringify(data.payload)
};
console.log(params, connectionsUrl);
//THIS PRINTS: { ConnectionId: 'ckd609nog0009sgp847cj3lgy', Data: '{}' }
https://xxxxxxxx.execute-api.xxxxxx.amazonaws.com/socket-test
await apigwManagementApi.postToConnection(params).promise();
} catch (e) {
console.error('APIGW Post To Connection ERROR:', e);
if (e.statusCode == 410) {
let res = await this.DisconnectConnection(connection.connectionId);
if (res.isError()) {
return ServiceResponse.Error(res.error)
}
return ServiceResponse.Error(res.error)
} else {
return ServiceResponse.Error({message: e.message});
}
}
我在记录错误的地方得到的错误是:
** APIGW发布到连接错误:BadRequestException:无效的connectionId:ckd609nog0009sgp847cj3lgy **
这不是陈旧的连接。这种用例是我连接到WebSocket并向套接字发送消息的过程,它执行某些操作并通过postToConnection方法返回结果。
出什么问题了?