我无法连接到mqtt经纪人与nodemcu直到DNS重试2次

我无法连接到mqtt经纪人“hivemq”,直到DNS重试两次。 问题是Dns在所有代码执行后才进行重试,所以即使连接到经纪人,我也无法发布任何消息。 我已经尝试设置DNS服务器,但没有解决任何问题。 我在mac上使用的是ESPlorer ide。 谢谢你的帮助,Luca

ssid =“我的ssid”
pswd =“我的pswd”

wifi.setmode(wifi.STATION)
print(“连接到WiFi”)

wifi.sta.config(ssid,pswd)
TMR.delay(5000000)
print(wifi.sta.getip())

net.dns.setdnsserver(“8.8.8.8”,0) - 设置google第一个DNS服务器--
net.dns.setdnsserver(“8.8.8.8”) - 等于上面的
net.dns.setdnsserver(“8.8.4.4”,1) - 设置google第二个DNS服务器
- net.dns.setdnsserver(“208.67.222.222”,0)-设置opendns第一个Dns服务器
- net.dns.setdnsserver(“208.67.222.222”)-等于
- net.dns.setdnsserver(“208.67.220.220”,1)-设置opendns第二个dns服务器

-- net.dns.getdnsserver(0)-获取第一个DNS服务器
-- net.dns.getdnsserver() -等于上面
-- net.dns.getdnsserver(1)-获取第二个DNS服务器
net.dns.resolve(“www.google.com”,function(socket,ip)

如果ip == nil then print(“错误:DNS失败!”)else print(ip)end
end)

TMR.delay(5000000)

m = mqtt.Client(“nodemcu”,1200,“用户名”,“密码”)
print(“嘿”)
connected = false

m.connect(“broker.hivemq.com”,function(client)print(“连接到经纪人”)connected = true end,function(client,reason)print(“原因:”)print(reason)end)
TMR.delay(5000000)

如果connected == true then print(“连接为true”)else print(“连接为False”)end

TMR.delay(10000000)

m.publish(“/ topic”,“hello”,0,function(client)print(“消息发布”)end)

这是我从nodemcu dev kit 1.0中获得的:

192.168.1.64    255.255.255.0    192.168.1.254
嗨
连接为false
init.lua:47:未连接
堆栈跟踪:
    [C]:在函数中'publish'
    init.lua:47:在主块中
    [C]:在函数中'dofile'
    stdin1:在主块中
> DNS重试1!
DNS重试2!
连接到经纪人
点赞