C# Mosquitto正在向Azure IoTHub发送消息

C# Mosquitto正在向Azure IoTHub发送消息,c#,azure,mqtt,mosquitto,azure-iot-hub,C#,Azure,Mqtt,Mosquitto,Azure Iot Hub,Azure在其IoTHub中实现了MQTT协议,所以我尝试使用Mosquito从我的pc发送消息。 我正在使用设备资源管理器创建azure设备。起初,我从那里生成了SAS令牌,但它没有“&skn=”部分,因此我尝试使用visual studio中的兼容事件中心生成新的SAS。在此之后,我尝试使用MOSQUITO broker使用CONNECT数据包中的参数向我的IoTHub发送MQTT消息,如下所述: 然而,连接不起作用,我真的不知道我哪里做错了。使用MOSQUITO_pub调试,我得到以下输

Azure在其IoTHub中实现了MQTT协议,所以我尝试使用Mosquito从我的pc发送消息。 我正在使用设备资源管理器创建azure设备。起初,我从那里生成了SAS令牌,但它没有“&skn=”部分,因此我尝试使用visual studio中的兼容事件中心生成新的SAS。在此之后,我尝试使用MOSQUITO broker使用CONNECT数据包中的参数向我的IoTHub发送MQTT消息,如下所述:

然而,连接不起作用,我真的不知道我哪里做错了。使用MOSQUITO_pub调试,我得到以下输出: “客户端正在发送连接 错误:连接已断开“ 你能帮我解决这个问题吗? 提前谢谢

这是我的MOSQUITO命令,第一个是使用设备资源管理器生成的SAS令牌,第二个是使用visual studio生成的:

mosquitto_pub-h{IotHub Hostname}-p 8883-t devices/{deviceId}/messages/events-v-v mqttv311-i{deviceId}-d-u{Hub Name}.azure devices.net/{deviceId}-p“Hostname={Hub Name}.azure devices.net;deviceId={deviceId};SharedAccessSignature sr=https%3a 2f%2f{Event Hub兼容名称}.servicebus.windows.net%2F设备和sig=k030AmvBkmlNwy%2FLD47N8JQUJ808JJJG9EXNAGMEUAN4%3d&se=2913829726&skn=IoTubOwner“


mosquitto_pub-h{IotHub Hostname}-p 8883-t devices/{deviceId}/messages/events-v-v mqttv311-i{deviceId}-d-u{Hub Name}.azure devices.net/{deviceId}-p“Hostname={Hub Name}.azure devices.net;deviceId={deviceId};SharedAccessSignature sr={Hub Name}.azure devices.net%2f devices%2f{devices}&sig=BYvo8GE%2fcodnd8g3wsp7velu4swsvtsaacniff%2ffBj1k%3d&se=1456911258“

Azure IoT Hub仅使用SSL,他们不会在您可能查看的用户名/密码信息部分宣传SSL。 不过,在会议上会简短地提到这一点。 在命令中不使用SSL

你的密码似乎也错了。 如果您查看前面提到的章节,您可以将DeviceId=*和HostName=*部分划掉。 此外,您的SharedAccessKey的一部分似乎被转义。也许这只是因为您将它复制到了SO中,但请确保在使用Mosquito时不是这样的。 您的密码应如下所示:

-P "SharedAccessSignature sr=yourtarget.azure-devices.net&sig=a_string_here&se=a_number&skn=policyname"
此外,目前(2016年3月),mosquitto和Azure通信之间似乎存在问题。
.

您是否可以编辑您的问题以包含您正在使用的mosquitto_pub命令行(apikey/password替换为合适的占位符)谢谢您hardillb,我编辑了这个问题。Azure IoT Hub正在使用SSL,他们不会在您可能查看的用户名/密码信息部分宣传SSL。然而,在会议上提到了这一点。然而,我也无法连接到Azure,并添加了我不确定的内容,但似乎mosquitto_pub用户名和密码不适用于代理版本3.1.1,Azure IotHub适用于mqtt 3.1.1。