Я использую API-шлюз AWS Websocket. Я отправляю сообщение подключенному клиенту aws:execute-api:region:account-id:api-id/stage-name/POST/@connections
. Однако сообщение как-то задерживается и пользовательский интерфейс не сможет сразу же получить сообщение чата. Я не понимаю, почему какие-то предложения, где что-то не так ????
Одна вещь очень исключительная, когда я отправляю сообщение, время получения последнего сообщения.
Пример: если я отправил одно сообщение, которое займет много времени. Если я отправляю 1-е сообщение, так же как и второе, я сразу получаю первое сообщение клиенту, но теперь второе сообщение занимает много времени. Поэтому, в основном, когда я отправляю n-е сообщение, каждое n-е сообщение доставляется клиенту, когда (n + 1) -е отправленное сообщение и (n + 1) -е сообщения занимают много времени.
Ваша помощь очень ценится !!!
Это только фрагмент кода, который у меня есть
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);
});
}
}
Я извлекаю идентификатор соединения из БД в одном запросе и вызываю эту функцию в цикле для отправки сообщения.