шлюз web-сокета aws занимает много времени - PullRequest
1 голос
/ 29 мая 2019

Я использую 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);
        });
    }
}

Я извлекаю идентификатор соединения из БД в одном запросе и вызываю эту функцию в цикле для отправки сообщения.

...