Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flukso/lua-mosquitto
Lua bindings to the libmosquitto MQTT client library.
https://github.com/flukso/lua-mosquitto
libmosquitto lua lua-bindings mosquitto mqtt mqtt-client
Last synced: 22 days ago
JSON representation
Lua bindings to the libmosquitto MQTT client library.
- Host: GitHub
- URL: https://github.com/flukso/lua-mosquitto
- Owner: flukso
- License: other
- Created: 2013-01-20T18:36:57.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2023-06-16T13:36:51.000Z (over 1 year ago)
- Last Synced: 2024-10-01T15:35:20.281Z (about 1 month ago)
- Topics: libmosquitto, lua, lua-bindings, mosquitto, mqtt, mqtt-client
- Language: C
- Homepage: https://github.com/flukso/lua-mosquitto
- Size: 64.5 KB
- Stars: 63
- Watchers: 17
- Forks: 42
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
lua-mosquitto
=============Lua bindings to the [libmosquitto](http://www.mosquitto.org/) client library.
The parameters to all functions are as per [libmosquitto's api](http://mosquitto.org/api)
only with sensible defaults for optional values, and return values directly
rather than via pointers.Generated API documentation for the lua functions [is also available](docs/)
([Direct link if you are within github](https://flukso.github.io/lua-mosquitto/docs))Compile
-------
You need Lua and mosquitto development packages (headers and libs) to
build lua-mosquitto.Compile with
make
You can override the pkg-config package name to set a specific Lua version.
For example:make LUAPKG=lua5.2
Example usage
-------------Here is a very simple example that subscribes to the broker $SYS topic tree
and prints out the resulting messages:```Lua
mqtt = require("mosquitto")
client = mqtt.new()client.ON_CONNECT = function()
print("connected")
client:subscribe("$SYS/#")
local mid = client:subscribe("complicated/topic", 2)
endclient.ON_MESSAGE = function(mid, topic, payload)
print(topic, payload)
endbroker = arg[1] -- defaults to "localhost" if arg not set
client:connect(broker)
client:loop_forever()
```Here is another simple example that will just publish a single message,
"hello", to the topic "world" and then disconnect.```Lua
mqtt = require("mosquitto")
client = mqtt.new()client.ON_CONNECT = function()
client:publish("world", "hello")
local qos = 1
local retain = true
local mid = client:publish("my/topic/", "my payload", qos, retain)
endclient.ON_PUBLISH = function()
client:disconnect()
endbroker = arg[1] -- defaults to "localhost" if arg not set
client:connect(broker)
client:loop_forever()
```