我已经为IOThub创建了一个测试帐户,并下拉了azure-iot-sdks git存档以进行测试。
我已将连接字符串添加到iothub_client_sample_http和iothub_client_sample_mqtt .c文件中。
当我运行iothub_client_sample_http时,我发现在从PR_lock调用的pthread_mutex_lock中出现分段违例之前发送并确认了几个网络数据包。我会跟踪它并修复它。
更重要的是,我想使用MQTT协议。当我执行iothub_client_sample_mqtt应用程序时,我在连接代码中出现超时。我看过带有鲨鱼的数据包,我看到的是:
TCP 74 33226> secure-mqtt [SYN] Seq = 0 Win = 29200 Len = 0 MSS = 1460 SACK_PERM = 1 TSval = 81898578 TSecr = 0 WS = 128
然后又有两个数据包与重传一样。我从来没有看到任何回复包。
我是否需要在IOThub上启用以允许使用MQTT?
我实际上想在产品中使用mosquitto,我从我的代码中得到了相同的场景。
感谢您的帮助。
答案 0 :(得分:2)
您也可以在WebSockets上使用MQTT,它使用443端口而不是8883。
查看https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support
的更多详情答案 1 :(得分:0)
感谢您的回答。事实证明该公司正在将所有数据包过滤到端口8883,这是我的问题。
MQTT与集线器的其他协议相比具有一些特殊优势。随着它变得越来越流行,IT组织将需要改变这种类型的东西。
再次感谢。