0

我已经为 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 > 安全 mqtt [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=81898578 TSecr=0 WS=128

然后再传出两个相同的数据包并重新传输。我从来没有看到任何回复数据包。

我需要在 IOThub 上启用某些功能以允许使用 MQTT 吗?

我实际上想在产品中使用 mosquitto,并且从我的代码中得到了相同的场景。

谢谢你的帮助。

4

2 回答 2

2

您还可以使用 MQTT over WebSockets,它使用 443 端口而不是 8883。

从https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support查看更多详细信息

于 2017-03-20T09:39:40.863 回答
0

感谢你的回答。事实证明,该公司正在过滤所有到端口 8883 的数据包,这是我的问题。

MQTT 对集线器的其他协议有一些特殊的优势。随着它变得越来越流行,IT 组织将需要改变这种类型的东西。

再次感谢。

于 2016-09-28T15:17:40.940 回答