/ / MQTT на концентраторі Azure IOT: Помилка ініціалізації підключення MQTT.

MQTT на автобусі IUC Hub: Помилка ініціалізації MQTT-з'єднання: не підключено до підключення - java, azure, mqtt, iot, azure-iot-hub

Я намагаюся використовувати концентратор IOT Microsoft Azureпродемонструвати підключення пристрою до IOT Hub і відправити повідомлення за допомогою протоколу mqtt. У мене є обліковий запис і створений пристрій і SAS з TTL в міру необхідності. Я використовую java клієнт SDK дана Microsoft Azure для підключення, але моє з'єднання не санкціоновано. Я дотримувався всіх кроків, наведених у наведеному нижче URL-адресі: https://azure.microsoft.com/en-us/documentation/articles/iot-hub-mqtt-support/ Будь ласка, допоможіть мені у цьому відношенні. Мої журнали нижче:

Журнали:

MqttIotHubConnection.open() connectionOptions=
============== Connection options ==============
CleanSession : false
SocketFactory : null
MqttVersion : 4
KeepAliveInterval : 20
ConTimeout : 30
UserName : PCSIOTHub.azure-devices.net/MQ...
SSLProperties : null
WillDestination : null


Exception in thread "main" java.io.IOException: Error initializing MQTT connection:Not authorized to connect
at com.microsoft.azure.iothub.transport.mqtt.MqttIotHubConnection.open(MqttIotHubConnection.java:142)
at com.microsoft.azure.iothub.transport.mqtt.MqttTransport.open(MqttTransport.java:83)
at com.microsoft.azure.iothub.DeviceClient.open(DeviceClient.java:163)
at samples.com.microsoft.azure.iothub.SendReceive.main(SendReceive.java:210)

Відповіді:

1 для відповіді № 1

Якщо ви використовуєте клієнт Microsoft Java для IoT Hub, вам не потрібно самостійно створювати маркер SAS, SDK робить це за вас.

Якщо ви наслідуєте приклад, https://azure.microsoft.com/en-us/documentation/articles/iot-hub-java-java-getstarted/#create-a-simulated-device-app, все, що потрібно зробити, це замінити:

private static IotHubClientProtocol protocol = IotHubClientProtocol.AMQPS;

з:

private static IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;

і у вас буде базовий клієнт Java, який може спілкуватися з IoT Hub над MQTT.


1 для відповіді № 2

Як сказав @DominicBetts, вам не потрібно створювати маркер SAS під час використання SDK для IoTHub для Java. Azure IoT Hub developer guide.

В якості посилання на зразок можна звернутися до приклад на GitHub знати, як надсилати повідомлення в різних протоколах для Java.