ESP8266 nodemcu解析了raspberry的本地dns

时间:2016-06-21 07:48:14

标签: dns raspberry-pi2 esp8266 nodemcu mdns

我遇到了通过mqtt在树莓上连接esp模块的问题。经过大量的搜索,我觉得我现在有点迷失了。

所以这就是问题

我已经将我的raspberry的本地dns设置为cubex.local,我按照这里的说明进行操作:

http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/

为此,一切似乎都运转正常...... 我可以使用本地网络上的cubex.local来访问覆盆子的ssh和ftp,但是当esp尝试解析该地址时,它会一直失败。

这是在esp上运行的代码:

function broker_connect()
 m = mqtt.Client(ID, 120, BRUSER, BRPWD)
 m:on("message", on_message_received)
 m:on("connect", on_connect)
 m:on("offline", on_mqqt_offline)

 tmr.alarm(0, 1000, 1,function() 
 print("Connecting to MQTT broker at "..HOST..". Please wait...")
 m:connect( HOST , PORT, 0)
end)

和输出:

  

在cubex.local连接到MQTT代理。请稍候...
  DNS重试1!
  DNS重试2!
  DNS重试3!
  DNS重试4!
  DNS失败!
  在cubex.local连接到MQTT代理。请稍候...
  DNS重试1!
  DNS重试2!
  DNS重试3!
  DNS重试4!
  DNS失败!
  在cubex.local连接到MQTT代理。请稍候...
  DNS重试1!
  DNS重试2!
  DNS重试3!
  DNS重试4!
  DNS失败!

主变量包含cubex.local,端口为1883 当我使用覆盆子的IP为192.168.0.3时,一切正常 我仍然无法理解为什么它一直无法解析地址。

1 个答案:

答案 0 :(得分:1)

您的主机名cubex.local是通过mDNS注册的,但是mqtt查询DNS以解析主机名。

一个选项可能是将DNS代理用于mDNS,如mdns-proxy,另一个选项是修改nodemcu以直接查询mDNS。