AWSIotDevice.get () зависает навсегда - PullRequest
1 голос
/ 12 апреля 2020

Я вызываю этот код внутри службы отдыха (внедрить на сервере Spring Boot.) Первый вызов выполняется ОК. (клиент был правильно инициализирован и правильно получает состояние тени устройства) Когда я запускаю ту же службу во второй раз - код device.get() просто висит и навсегда приостанавливает поток.

I ' m работает с

com.amazon aws: aws -iot-device-sdk- java: 1.3.6

org.eclipse.paho: org.eclipse.paho .client.mqttv3: 1.2.2

Это мой код:

AWSIotMqttClient awsIotClient = awsIotService.initClient();
AWSIotDevice device = new AWSIotDevice(deviceName);
        try {
            awsIotClient.attach(device);

            if(awsIotClient.getConnectionStatus()== AWSIotConnectionStatus.DISCONNECTED) {
                awsIotClient.connect(5000,true);
            }
            // Retrieve updated document from the shadow
            String shadowState = device.get();  // =>Suspended

Вот мой код подключения клиента: (который успешно подключен)


KeyStorePasswordPair pair = getKeyStorePasswordPair(certificateFile, privateKeyFile);
awsIotClient = new AWSIotMqttClient(clientEndpoint, clientId, pair.keyStore, pair.keyPassword);
awsIotClient.setKeepAliveInterval(60000);
awsIotClient.setNumOfClientThreads(5);
awsIotClient.setMaxConnectionRetries(5);

И кстати, то же самое происходит во втором звонке: device.update(jsonState)

...