README.md 1.93 KB
Newer Older
alexandre burton's avatar
alexandre burton committed
1
2
3
4
# MQTT Max Client

**MQTT client based on libmosquitto**

5
In Memoriam W protocol
alexandre burton's avatar
alexandre burton committed
6

7
This object provides a Max interface to a treaded instance of the [libmosquitto](http://mosquitto.org/man/libmosquitto-3.html) client.
alexandre burton's avatar
alexandre burton committed
8

9
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).
alexandre burton's avatar
alexandre burton committed
10

11
It bundles a static libmosquitto binary (TLS stuff was raising errors so it was 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).
alexandre burton's avatar
alexandre burton committed
12
13
14
15
16


## TODO

Max interface:
17
18
- ~~QOS, persistence~~
- will 
19
20
- ~~complete attribute support~~
- re-connect on attribute change when required
21
- complete max type support on publish (how to allow arbitrary length vs QOS/persistence?)
22
- ~~auto-connection on object creation if attributes are set~~
23
- "enable" toggle (to "mute" traffic at the max level)
alexandre burton's avatar
alexandre burton committed
24
25
26
27

Bundled library:
- TLS support
- (maybe) auto-discovery of dynamic system-level dylib support, vs bundled as fallback (?) 
28
- ... or should the MQTT CMake-based source be included & compiled with the object? Best practice vs open source Max objects?
alexandre burton's avatar
alexandre burton committed
29
30

Other features:
31
- thorough MQTT callback and message support (double-check MQTT error messages; sometimes they're weird)
32
33
34
- support for MQTT ping
- max package; better examples/docs
- scan payloads for binary or structured data (jitter matrices, msp vectors, json dicts)
35
36
37
- ... otherwise preprocess as a list (string, float, int) to spare large gensym()s and reduce pressure on [fromsymbol]
- "setup" of higher-level strategy (topic structure for parameters)
- optimize lifecycle of the mosquitto instance? (re-use vs re-create) 
alexandre burton's avatar
alexandre burton committed
38
39
40
41
42
43

Windows version:
- compile a libmosquitto lib, and the .mxe 

Linux version:
- as soon as Max4Linux comes out of alpha