Lua binding for libmosquitto (https://github.com/eclipse/mosquitto).
local mosquitto = require("mosquitto")
local m = mosquitto.new("id:test", true)
-- set callbacks
m:on("connect", function(rc, ud)
print("on:connect", rc)
end)
m:on("log", function(msg)
print("log::message = '"..msg.."'")
end)
m:on("publish", function(mid)
print("mid: ", mid)
end)
m:on("message", function(msg)
print("message::mid =", msg.mid)
end)
-- connect
local ok, rc = m:connect("localhost", 1883, 10, true)
assert(ok)
-- set will
m:set_will("topic/will-path", "will!", 1, true)
-- subscribe
m:subscribe("topic/path", 1)
m:subscribe("topic/path/2", 1)
-- publish
m:publish("topic/path", "test test", 1, false)
-- loop for 10 seconds
m:loop(10, 1)
-- clear will
m:clear_will()
m:disconnect()
Returns:
- version[string] - string represntation of the version
- version[number] - numerical represntation of the version
Create new mosquitto instance
Params:
- id[string]
- clean_session[boolean]
Returns:
- mosquitto instance
Connect to host:port
Params:
- host[string]
- port[integer]
- keepalive[integer]
- async[boolean/optional]
Returns:
- ok[boolean]
- rc[integer]
Connect to host:port
Params:
- host[string]
- port[integer]
- keepalive[integer]
- bind_address[string]
- async[boolean/optional]
Returns:
- ok[boolean]
- rc[integer]
reconnect
Params:
- async[boolean/optional]
Returns:
- ok[boolean]
- rc[integer]
Disconnect
Returns:
- ok[boolean]
Start the mosquitto loop
Params:
- timeout[integer]
- max_packets[integer]
Returns:
- ok[boolean]
- rc[intenger] - return code
Start the mosquitto loop forever
Params:
- timeout[integer]
- max_packets[integer]
Returns:
- ok[boolean]
- rc[integer]
Subscribe
Params:
- sub[string]
- qos[integer]
Returns:
- ok[boolean]
- mid/rc[integer] - message id on success/rc on failure
Unsubscribe
Params:
- sub[string]
Returns:
- ok[boolean]
- mid/rc[integer] - message id on success/rc on failure
Publish a message
Params:
- topic[string]
- payload[string]
- qos[integer]
- retain[boolean]
Returns:
- ok[boolean]
- mid/rc[integer] - message id on success/rc on failure
Set a callback for specific event
Params:
- event[string] - connect, disconnect, subscribe, unsubscribe, message, log, publish
- callback[function] - callback with two params
data
anduser_data
Returns:
- none
Set username & password for authentication.
Params:
- username[string]
- password[string]
Returns:
- ok[boolean]
- rc[integer]
Set TLS parameters
Params:
- cafile[string]
- capath[string]
- certfile[string]
- keyfile[string]
Returns:
- ok[boolean]
- rc[integer]
Set TLS options
Params:
- cert_reqs[integer]
- tls_version[string]
- ciphers[string]
Returns:
- ok[boolean]
- rc[integer]
Set TLS insecure mode
Params:
- value[boolean]
Returns:
- ok[boolean]
- rc[integer]
Set TLS psk options
Params:
- psk[string]
- identity[string]
- ciphers[string]
Returns:
- ok[boolean]
- rc[integer]
Set max inflight messages
Params:
- max_inflight_messages[integer]
Returns:
- ok[boolean]
- rc[integer]
Set message retry
Params:
- message_retry[integer]
Returns:
- ok[boolean]
Set reconnect params
Params:
- delay[integer]
- delay_max[integer]
- exponential_backoff[boolean]
Returns:
- ok[boolean]
- rc[integer]
Get the connack string of a connack code
Params:
- connack_code[integer]
Returns:
- connack_string[connack_code]
Get the error representation of an errno
Params:
- errno[integer]
Returns:
- str[errno]