56 lines
1.1 KiB
Lua
56 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,
|
|
retain = true
|
|
})
|
|
print(" DONE!")
|
|
end
|
|
|
|
client = mqtt.client {
|
|
uri = "mqtt.seeseepuff.be",
|
|
username = "tool-upload-controller",
|
|
clean = true,
|
|
reconnect = 5,
|
|
}
|
|
|
|
client:on {
|
|
connect = onConnect,
|
|
message = onMessage,
|
|
}
|
|
|
|
print("Connecting")
|
|
mqtt.run_ioloop(client)
|