Я намагаюся використовувати концентратор 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.