【发布时间】:2021-10-07 18:14:27
【问题描述】:
我正在使用 AWS Websocket api-gateway。我正在通过aws:execute-api:region:account-id:api-id/stage-name/POST/@connections 向连接的客户端发送消息。但是,消息以某种方式延迟,用户界面将无法立即接收聊天消息。我不知道为什么会出现任何错误的建议????
有一件事非常特别,当我发送消息时,最后一条消息得到时间。 示例:如果我发送了一条需要很长时间的消息。如果我发送第一条消息,就像我发送第二条消息一样,第一条消息将立即收到客户端,但现在第二条第二条消息需要很长时间。所以基本上当我发送第 n 条消息时,当发送第 (n+1) 条消息并且第 (n+1) 条消息需要很长时间才能传递时,每条 n 条消息都会传递给客户端。
非常感谢您的帮助!!!
这只是我拥有的代码片段
import * as AWS from 'aws-sdk';
export class AWSWebsocketGateway {
websocketInstance;
constructor() {
AWS.config.update({
accessKeyId: <accessKeyId>,
secretAccessKey: <secretAccessKey>,
region: <region>
});
this.websocketInstance = new AWS.ApiGatewayManagementApi({
endpoint: <webSocketDomainName> + <webSocketStage>
});
}
sendMessage(connection, messageObject, callback: Function) {
messageObject = JSON.stringify(messageObject);
this.websocketInstance.postToConnection({ ConnectionId: connection, Data: JSON.stringify(messageObject) }, function (error, data) {
console.log('Error', error, 'Send Message...', data);
return callback(error, data);
});
}
}
我在一个查询中从数据库中检索连接 ID,并在循环中调用此函数以发送消息。
【问题讨论】:
-
您能否分享一些代码、日志和屏幕截图,以便我们为您提供帮助。
-
我们需要更多信息和完整的代码示例
-
@Darkonekt 也发布了代码。
-
我也面临同样的问题。有什么解决办法吗?
标签: amazon-web-services websocket aws-lambda aws-api-gateway