spidermqtt/sim.lua

55 lines
1.1 KiB
Lua

package.path = package.path .. ';./controller-host/?/init.lua;./controller-host/?.lua'
local mqtt = require("mqtt")
local client
local file = ...
local fh = io.open(file, "rb")
local contents = fh:read("a")
fh:close()
function printTable(table, indentation)
indentation = indentation or ""
for name, value in pairs(table) do
print(indentation .. tostring(name) .. ": " .. tostring(value))
end
end
local function onMessage(data)
print(data.payload)
end
local function onConnect(connack)
if connack.rc ~= 0 then
print("Connection to broker failed:", connack:reason_string())
os.exit(1)
end
print("Connected to MQTT")
assert(client:subscribe{
topic = "spider/controller/stdout"
})
io.write("Sending payload...")
assert(client:publish {
topic = "spider/controller/payload",
payload = contents,
qos = 0
})
print(" DONE!")
end
client = mqtt.client {
uri = "mqtt.seeseepuff.be",
username = "mqtt_controller",
clean = true,
reconnect = 5,
}
client:on {
connect = onConnect,
message = onMessage,
}
print("Connecting")
mqtt.run_ioloop(client)