java - Azure IOT 中心上的 MQTT : Error initializing MQTT connection:Not authorized to connect

标签 java azure mqtt iot azure-iot-hub

我正在尝试使用 Microsoft Azure IOT Hub 来演示将我的设备连接到 IOT Hub 并使用 mqtt 协议(protocol)发送消息。 我有一个帐户并根据需要创建了具有 TTL 的设备和 SAS。我正在使用 microsoft azure 提供的 java 客户端 SDK 进行连接,但我的连接未获得授权。 我已按照以下 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)

最佳答案

如果您使用 IoT 中心的 Microsoft Java 客户端,则无需自己创建 SAS token ,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 客户端,可以通过 MQTT 与 IoT 中心进行通信。

关于java - Azure IOT 中心上的 MQTT : Error initializing MQTT connection:Not authorized to connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37360627/

相关文章:

Azure WebJob 或 Scheduler 或其他技术?

java - mysql last_insert_id() 是否适用于连接池?

java - Johnzon 反序列化日期而不是休息

Azure 计算机视觉对于带有矢量图形的 pdf 返回垃圾

azure - 对 Azure Blob 存储的匿名请求的 header 是什么样的

node.js - 测试 RabbitMQ/MQTT 性能

java - 如何停止 java 方法,直到它收到来自 MQTT 代理的消息

azure - 将 Mosquitto 连接到新的 Azure MQTT 后端

java - 检查字符串中是否有给定的字母表

java - Spring Boot 2.1 bean 覆盖与 Primary