2016-01-05 5 views
1

Я работаю над esp8266 и пытаюсь подключиться к test.mosquitto.org. вот что я получил от чистойне удалось установить соединение с test.mosquitto.org

m = mqtt.Client("clientid", 60, "user", "password") 
m:on("connect", function(con) print ("connected") end) 
m:on("offline", function(con) print ("offline") end) 
m:on("message", function(conn, topic, data) 
    print(topic .. ":") 
    if data ~= nil then 
    print(data) 
    end 
end) 

m:connect("http://test.mosquitto.org/", 1883, 0, function(conn) print("connected") end) 
m:subscribe("/topic",0, function(conn) print("subscribe success") end) 
m:publish("/topic","hello",0,0, function(conn) print("sent") end) 
m:close(); 

Я не уверен, откуда получить ClientId, пользователь и передать,

вот что я получаю: DNS повторить 1! DNS retry 2! DNS retry 3! DNS retry 4! DNS Fail!

+0

Ответ был дан @hardillb. Также посмотрите на пример в https://github.com/nodemcu/nodemcu-firmware#connect-to-mqtt-broker –

ответ

1

Проблема заключается в HTTP: // в начале строки соединения и / в конце

Команда подключения хочет только что имя хоста не является URL, и даже если он сделал бы вы хочу передать TCP: //test.mosquitto.org или MQTT: //test.mosquitto.org

... 
m:connect("test.mosquitto.org", 1883, 0, function(conn) print("connected") end) 
... 

Кроме того, как в сторону, ваши темы не должны начинаться с /, это только добавляетлишний ненужный нуль к началу дерева тем.

2

Попробуйте с IP вместо имени:

m:connect("85.119.83.194", 1883, 0, function(conn) print("connected") end) 

, если это работает, что означает, что у вас возникли проблемы разрешающих имя сайта (по какой-либо причине).

+0

, он работает с IP-адресом. Благодарю. – ahmadalibaloch

0

RE оригинального вопроса: Я использую его без последних аргументов в

m = mqtt.Client(clientID, 60) 

и clientID является любым именем вы хотите, чтобы отличить себя от других клиентов (например, "Ankit").

В этой статье должно быть более подробно описана полезная нагрузка (например, "message"), а не общий /topic.

Также обратите внимание на более ранние ответы, для подключения используйте IP (например, "85.119.83.194") или имя хоста (например, "test.mosquitto.org") сервера.

HTH