我正在编写一个函数,它使用PostToConnectionCommand发送一个脚本形式的WebSocket消息。
async function sendMessageToClient(connectionId: string, payload) {
try {
console.log('Sending message to a connection', connectionId)
const apiGatewayManagementApi = new ApiGatewayManagementApiClient({
apiVersion: "2018-11-29",
endpoint: `https://${apiId}.execute-api.us-east-1.amazonaws.com/${stage}`
});
console.log("apiId", apiId, "stage", stage, "payload", payload);
const postToConnectionCommand = new PostToConnectionCommand({
ConnectionId: connectionId,
Data: payload
});
console.log("postToconnection command", postToConnectionCommand);
const response = (await apiGatewayManagementApi.send(postToConnectionCommand));
// Error is thrown at the line above
console.log("response", response);
} catch (err) {
console.log('Failed to send message', JSON.stringify(err))
if (err.statusCode === 410) {
console.log('Stale connection')
await deleteItem(connectionsTable, connectionId)
}
}
}
我正在尝试使用v3 SDK(aws-sdk/client-apigatewaymanagementapi)。我一直得到这个错误:
{
"code": "ERR_INVALID_ARG_TYPE",
"$metadata": {
"attempts": 1,
"totalRetryDelay": 0
}
}
我相信 typescript 会捕捉到类型错误。有人知道如何修复这个问题吗?
1条答案
按热度按时间pqwbnv8z1#
问题来自node_modules。有效负载应为字符串。在
.\node_modules\@aws-sdk\client-apigatewaymanagementapi\dist-types\models\models_0.d.ts
中,为参数定义的两种类型都不是字符串,这会导致错误