我有一台在Azure机器上运行的Ubuntu Server 14.04 . 我在这个Ubuntu服务器上安装了MQTT代理 . 此外,我有多个ESP8266设备,假设通过此代理订阅和发布到不同的MQTT主题 . 现在我的问题是,当我将两个设备连接到Broker,一个用于接收数据而另一个用于发布时,它们工作正常,但是当我尝试连接另一个设备到代理时,所有设备都停止工作,我的ESP只显示此消息“试图连接经纪人“一遍又一遍 . (在我的机器的 endpoints ,我为HTTP添加了1883,为HTTPS添加了443,为SSH增加了22)
My question is how I can allow multiple devices to communicate with MQTT broker running on Azure broker?
2 回答
MQTT客户端在连接之前将clientID作为参数提供,以提供唯一性 . ESP8266拥有独特的ChipID . 所以用它来解决这个问题 . 这里是Arduino固件的示例:
这是NodeMCU固件示例:
所有客户端设备都需要具有唯一的客户端ID . 您描述的情况与您所有esp8266设备具有相同的硬编码客户端ID的情况完全相同