我正在使用以前使用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
答案 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。
中