add more mqtt example, add a mqtt subfolder
This commit is contained in:
parent
74a70790f5
commit
450b79dbde
|
@ -515,3 +515,7 @@ end)
|
|||
m:on("message",dispatch )
|
||||
m:connect("m11.cloudmqtt.com",11214,0,1)
|
||||
-- Lua: mqtt:connect( host, port, secure, auto_reconnect, function(client) )
|
||||
|
||||
tmr.alarm(0,10000,1,function() local pl = "time: "..tmr.time()
|
||||
m:publish("/topic1",pl,0,0)
|
||||
end)
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
-- Lua: mqtt.Client(clientid, keepalive, user, pass)
|
||||
-- test with cloudmqtt.com
|
||||
m_dis={}
|
||||
function dispatch(m,t,pl)
|
||||
if pl~=nil and m_dis[t] then
|
||||
m_dis[t](pl)
|
||||
m_dis[t](m,pl)
|
||||
end
|
||||
end
|
||||
function topic1func(pl)
|
||||
function topic1func(m,pl)
|
||||
print("get1: "..pl)
|
||||
end
|
||||
function topic2func(pl)
|
||||
function topic2func(m,pl)
|
||||
print("get2: "..pl)
|
||||
end
|
||||
m_dis["/topic1"]=topic1func
|
||||
m_dis["/topic2"]=topic2func
|
||||
-- Lua: mqtt.Client(clientid, keepalive, user, pass)
|
||||
m=mqtt.Client("nodemcu1",60,"test","test123")
|
||||
m:on("connect",function(m)
|
||||
print("connection "..node.heap())
|
||||
|
@ -26,5 +26,8 @@ m:on("offline", function(conn)
|
|||
print(node.heap())
|
||||
end)
|
||||
m:on("message",dispatch )
|
||||
m:connect("m11.cloudmqtt.com",11214,0,1)
|
||||
-- Lua: mqtt:connect( host, port, secure, auto_reconnect, function(client) )
|
||||
m:connect("m11.cloudmqtt.com",11214,0,1)
|
||||
tmr.alarm(0,10000,1,function() local pl = "time: "..tmr.time()
|
||||
m:publish("/topic1",pl,0,0)
|
||||
end)
|
|
@ -0,0 +1,56 @@
|
|||
-- test transfer files over mqtt.
|
||||
m_dis={}
|
||||
function dispatch(m,t,pl)
|
||||
if pl~=nil and m_dis[t] then
|
||||
m_dis[t](m,pl)
|
||||
end
|
||||
end
|
||||
|
||||
function pubfile(m,filename)
|
||||
file.close()
|
||||
file.open(filename)
|
||||
repeat
|
||||
local pl=file.read(1024)
|
||||
if pl then m:publish("/topic2",pl,0,0) end
|
||||
until not pl
|
||||
file.close()
|
||||
end
|
||||
-- payload(json): {"cmd":xxx,"content":xxx}
|
||||
function topic1func(m,pl)
|
||||
print("get1: "..pl)
|
||||
local pack = cjson.decode(pl)
|
||||
if pack.content then
|
||||
if pack.cmd == "open" then file.open(pack.content,"w+")
|
||||
elseif pack.cmd == "write" then file.write(pack.content)
|
||||
elseif pack.cmd == "close" then file.close()
|
||||
elseif pack.cmd == "remove" then file.remove(pack.content)
|
||||
elseif pack.cmd == "run" then dofile(pack.content)
|
||||
elseif pack.cmd == "read" then pubfile(m, pack.content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
m_dis["/topic1"]=topic1func
|
||||
-- Lua: mqtt.Client(clientid, keepalive, user, pass)
|
||||
m=mqtt.Client()
|
||||
m:on("connect",function(m)
|
||||
print("connection "..node.heap())
|
||||
m:subscribe("/topic1",0,function(m) print("sub done") end)
|
||||
end )
|
||||
m:on("offline", function(conn)
|
||||
print("disconnect to broker...")
|
||||
print(node.heap())
|
||||
end)
|
||||
m:on("message",dispatch )
|
||||
-- Lua: mqtt:connect( host, port, secure, auto_reconnect, function(client) )
|
||||
m:connect(192.168.18.88,1883,0,1)
|
||||
|
||||
-- usage:
|
||||
-- another client(pc) subscribe to /topic2, will receive the test.lua content.
|
||||
-- and publish below message to /topic1
|
||||
-- {"cmd":"open","content":"test.lua"}
|
||||
-- {"cmd":"write","content":"print([[hello world]])\n"}
|
||||
-- {"cmd":"write","content":"print(\"hello2 world2\")\n"}
|
||||
-- {"cmd":"write","content":"test.lua"}
|
||||
-- {"cmd":"run","content":"test.lua"}
|
||||
-- {"cmd":"read","content":"test.lua"}
|
Loading…
Reference in New Issue