Lua 我能';在DNS重试2次之前,请不要使用nodemcu连接到mqtt代理

Lua 我能';在DNS重试2次之前,请不要使用nodemcu连接到mqtt代理,lua,dns,nodemcu,Lua,Dns,Nodemcu,在DNS重试2次之前,我无法连接到mqtt代理“hivemq”。 问题是,Dns会在代码全部执行后重试,因此我无法发布任何消息,尽管它已连接到代理。 我试着设置DNS服务器,但没有解决任何问题。 我正在mac上使用ESPlorer ide。 谢谢你的帮助,卢卡 ssid = "my ssid" pswd = "my pswd" wifi.setmode(wifi.STATION) print("connecting to wifi") wifi.sta.config(ssid,pswd)

在DNS重试2次之前,我无法连接到mqtt代理“hivemq”。 问题是,Dns会在代码全部执行后重试,因此我无法发布任何消息,尽管它已连接到代理。 我试着设置DNS服务器,但没有解决任何问题。 我正在mac上使用ESPlorer ide。 谢谢你的帮助,卢卡

ssid = "my ssid"
pswd = "my pswd"

wifi.setmode(wifi.STATION)
print("connecting to wifi")


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


net.dns.setdnsserver("8.8.8.8", 0)--sets google first dns server--
net.dns.setdnsserver("8.8.8.8")  --equal to above
net.dns.setdnsserver("8.8.4.4", 1)  --sets google second dns server
--net.dns.setdnsserver("208.67.222.222", 0)--sets opendns first dns server
--net.dns.setdnsserver("208.67.222.222")  --equal to 
--net.dns.setdnsserver("208.67.220.220", 1) --sets opendns second dns server

--net.dns.getdnsserver(0) --gets first dns server
--net.dns.getdnsserver() --equal to above
--net.dns.getdnsserver(1)  --gets second dns server
net.dns.resolve("www.google.com", function (socket,ip)

if ip == nil then print("error: DNS fail!") else print(ip) end
end )

tmr.delay(5000000)



m=mqtt.Client("nodemcu", 1200, "username", "password")
print("hey")
connected = false



   m:connect("broker.hivemq.com", function(client) print("connected to broker") connected = true end, function(client,reason) print("reason:") print(reason) end)
   tmr.delay(5000000)

  if connected==true then print("connected is true") else print("connected is false") end


tmr.delay(10000000)

m:publish("/topic", "hello", 0, function(client) print("message published")end)
这是我从nodemcu dev kit 1.0获得的:

192.168.1.64 255.255.255.0 192.168.1.254
嘿
这是假的
初始化lua:47:未连接
堆栈回溯:
[C] :在函数“发布”中
初始化lua:47:在主块中
[C] :在函数“dofile”中
stdin:1:在主块中
>DNS重试1!
DNS重试2!

连接到代理
我建议您学习如何处理NodeMCU的事件驱动特性,使用几乎所有用例都是不可能的。从一个适当的
init.lua
开始,它初始化WiFi:仅在客户端连接后,通过在连接的回调中调用
m:publish