Microsoft Azure IoT концентратор (Java) уведомляет "Потерянное соединение с сервером. Повторное подключение 0 раз". после отправки сообщения
Я использую библиотеку IoT Hub Java для отправки сообщений между моими устройствами и Microsoft Azure.
Для подключения звоню
client = new DeviceClient(connString, protocol);
client.open();
А потом, чтобы отправить сообщение, я звоню
client.sendEventAsync(message, callback, lockobj);
Тогда мой callback
функция вызывается при отправке сообщения.
Тем не менее, и здесь проблема, после вызова sendEventAsync
на моем терминале бесконечно появляется сообщение Lost connection to the server. Reconnecting 0 time.
Я пытался закрыть соединение после отправки сообщения и открывать его каждый раз, но я думаю, что это хуже, и проблема остается. Кроме того, я выполнил тестовый образец, предоставленный Azure ( https://github.com/Azure-Samples/azure-iot-samples-java/archive/master.zip), и у меня возникла та же проблема.
Итак, мой вопрос, есть ли проблема с библиотекой (поскольку проблема присутствует даже с ее кодом)? Или я что-то не так делаю?
Большое спасибо!
1 ответ
Я обнаружил проблему: сегодня я тестировал тот же код, что и вчера, и все работало хорошо. Итак, я вошел в Azure и обнаружил следующее сообщение об ошибке:
Произошла ошибка при запросе устройств: Forbidden:{ "Message": "ErrorCode:IotHubQuotaExceeded; общее количество сообщений на IotHub '[..]' превысило выделенную квоту. Максимально допустимое количество сообщений: '8000', текущее количество сообщений: '20107'. Операции отправки и получения заблокированы для этого концентратора до следующего дня UTC. Рассмотрите возможность увеличения единиц для этого концентратора для увеличения квоты.", "ExceptionMessage": " Идентификатор отслеживания:[..]-TimeStamp:10/17/2018 08:48:37" }.
Проблема в том, что я превысил квоту сообщений. Однако вчера я был смущен, потому что Azure ответил мне сообщением "OK_EMPTY", которое означает, что все в порядке...