Azure Mqtt直接连接

时间:2018-03-22 13:56:41

标签: azure

我正在使用以前使用HiveMq服务器完成的GSM模块的MQTT工作,它完全通过doc的参考来完成。我已通过broker.hivemq.com端口1883完成了发布和订阅。

现在我在Azure上。这些提案中有很多查询

由于MQTT数据包是唯一的,我想我可以像hivemq一样以类似的方式连接,但我无法找到Azure的IP地址,我的猜测是XXXXXX.azure-devices.net和端口8883。是正确的吗?

我以此格式dF8vP17DxCwG8IRccXXXXXXkIrCVfWIC7qmcM获得了设备ID密钥。是密码,我应该提供证书。如果是的话他们是什么。

用户名是{iothubname}吗?

获取上述所需参数后,是否可以在此document之后直接发送MQTT数据包。如果没有,请你描述一下

我有连接字符串{}和端点是什么?

创建主题messages/events/TOPIC。这是对的吗?

真的很困惑,可以将我的设备(GSM模块)与Azure进行通信。

谢谢&问候 kishore D

1 个答案:

答案 0 :(得分:0)

来自Using the MQTT protocol directly

  

对于ClientId字段,请使用deviceId。

     

对于用户名字段,请使用{iothubhostname}/{device_id}/api-version=2016-11-14,其中{iothubhostname}是物联网中心的完整CName。

     

例如,如果您的IoT中心名称是 contoso.azure-devices.net ,并且您的设备名称是 MyDevice01 ,则完整的用户名字段应该是含有:

contoso.azure-devices.net/MyDevice01/api-version=2016-11-14
     

对于“密码”字段,请使用SAS令牌。 SAS令牌的格式与HTTPS和AMQP协议的格式相同:

SharedAccessSignature sig={signature-string}&se={expiry}&sr={URL-encoded-resourceURI}

Azure IoT Hub不仅仅是一个MQTT代理,并不能让您完全控制该协议。如果协议控制是关键,我们正在寻找一个业余爱好者项目,在Azure Container Instances上运行的Mosquitto Docker容器可能是更好的解决方案。对于冷路径,您可以将遥测数据存储在Azure Cosmos DB