This object provides a Max interface to a treaded instance of the [libmosquitto](http://mosquitto.org/man/libmosquitto-3.html) client.
In Memoriam W protocol
v20210101 was developped, tested and signed on macOS 10.14.6. It covers the features our application required; more work to follow (see below).
This object provides a Max interface to a treaded instance of the [libmosquitto](http://mosquitto.org/man/libmosquitto-3.html) client.
It bundles a static libmosquitto binary (TLS support was giving errors so it was simply disabled through CMake). You can probably swap the .a in the .mxo with your own library if you wish.
v20210101 was developped, tested and signed on macOS 10.14.6 with a mosquitto broker running on debian in a well-connected north american data center. It covers the features our application required; more work to follow (see below).
Signing seems to be OK; not sure how the Xcode project will present itself to someone else, but as long as the bundled libmosquitto.a gets signed (there a scripting step for that), it works fine on unrelated computers.
It bundles a static libmosquitto binary (TLS support was giving errors so it was simply disabled through CMake). You can probably swap the .a in the .mxo with your own signed library if you wish. (Not sure how the Xcode project will present itself to someone else vs signing identities).
## TODO
## TODO
Max interface:
Max interface:
- QOS, persistence and will
-~~QOS, persistence~~
-complete MQTT callback support
-will
- complete attribute support
- complete attribute support
- auto-connection
- complete max type support on publish (how to allow arbitrary length vs QOS/persistence?)
- auto-connection on object creation if attributes are set
- "enable" toggle (to "mute" traffic at the max level)
Bundled library:
Bundled library:
- TLS support
- TLS support
- (maybe) auto-discovery of dynamic system-level dylib support, vs bundled as fallback (?)
- (maybe) auto-discovery of dynamic system-level dylib support, vs bundled as fallback (?)
- or should the MQTT CMake-based source be included / compiled with the object?
-... or should the MQTT CMake-based source be included & compiled with the object? Best practice vs open source Max objects?
Other features:
Other features:
- max package
- thorough MQTT callback and message support
- internal preprocessing of the received message (detect JSON dict, or list or ...?)
- support for MQTT ping
- max package; better examples/docs
- scan payloads for binary or structured data (jitter matrices, msp vectors, json dicts)
- ... otherwise preprocess as a list (string, float, int) to spare gensym()s and reduce pressure on [fromsymbol]
- optimize lifecycle of the mosquitto instance? (re-use vs re-create)
- optimize lifecycle of the mosquitto instance? (re-use vs re-create)
// asssumes something that fits in a max symbol -- should check for cues or magic numbers and generates json dicts, jitter matrices, or vectors of audio