| <?php include '../_includes/header.php' ?><div class="refentry"> |
| <a name="libmosquitto"></a><div class="titlepage"></div> |
| <div class="refnamediv"> |
| <h2>Name</h2> |
| <p>libmosquitto — MQTT version 3.1 client library</p> |
| </div> |
| <div class="refsect1"> |
| <a name="idp49107072"></a><h2>Description</h2> |
| <p>This is an overview of how to use libmosquitto to create MQTT |
| aware client programs. There may be separate man pages on each of the |
| functions described here in the future. There is also a binding for |
| libmosquitto for C++ and a Python implementation. They are not |
| documented here but operate in a similar way.</p> |
| <p>This is fairly incomplete, please see mosquitto.h for a better |
| description of the functions.</p> |
| </div> |
| <div class="refsect1"> |
| <a name="idp49108944"></a><h2>libmosquitto symbol names</h2> |
| <p>All public functions in libmosquitto have the prefix |
| "mosquitto_". Any other functions defined in the source code are to be |
| treated as private functions and may change between any release. Do not |
| use these functions!</p> |
| </div> |
| <div class="refsect1"> |
| <a name="idp49110336"></a><h2>Functions</h2> |
| <div class="refsect2"> |
| <a name="idp49110976"></a><h3>Library version</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_lib_version</b>(</code></td> |
| <td> |
| <var class="pdparam">major</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">minor</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">revision</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>int *<var class="pdparam">major</var></code>;<br><code>int *<var class="pdparam">minor</var></code>;<br><code>int *<var class="pdparam">revision</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <p>Obtain version information about the library. If any of |
| major, minor or revision are not NULL they will return the |
| corresponding version numbers. The return value is an integer |
| representation of the complete version number (e.g. 1009001 for 1.9.1) |
| that can be used for comparisons.</p> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49115376"></a><h3>Library initialisation and cleanup</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_lib_init</b>(</code></td> |
| <td> |
| <code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_lib_cleanup</b>(</code></td> |
| <td> |
| <code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <p>Call mosquitto_lib_init() before using any of the other |
| library functions and mosquitto_lib_cleanup() after finishing |
| with the library.</p> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49118992"></a><h3>Client constructor/destructor</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">struct mosquitto *<b class="fsfunc">mosquitto_new</b>(</code></td> |
| <td> |
| <var class="pdparam">id</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">clean_session</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">userdata</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>const char *<var class="pdparam">id</var></code>;<br><code>bool <var class="pdparam">clean_session</var></code>;<br><code>void *<var class="pdparam">userdata</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <p>Create a new mosquitto client instance.</p> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">void <b class="fsfunc">mosquitto_destroy</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <p>Use to free memory associated with a mosquitto client instance.</p> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_reinitialise</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">id</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">clean_session</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">userdata</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">id</var></code>;<br><code>bool <var class="pdparam">clean_session</var></code>;<br><code>void *<var class="pdparam">userdata</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49128720"></a><h3>Authentication and encryption</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_username_pw_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">username</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">password</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">username</var></code>;<br><code>const char *<var class="pdparam">password</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_tls_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">cafile</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">capath</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">certfile</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">keyfile</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*pw_callback)(char *buf, int size, int rwflag, void *userdata)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">cafile</var></code>;<br><code>const char *<var class="pdparam">capath</var></code>;<br><code>const char *<var class="pdparam">certfile</var></code>;<br><code>const char *<var class="pdparam">keyfile</var></code>;<br><code>int <var class="pdparam">(*pw_callback)(char *buf, int size, int rwflag, void *userdata)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_tls_opts_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">cert_reqs</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">tls_version</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">ciphers</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int <var class="pdparam">cert_reqs</var></code>;<br><code>const char *<var class="pdparam">tls_version</var></code>;<br><code>const char *<var class="pdparam">ciphers</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_tls_insecure_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">value</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>bool <var class="pdparam">value</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_tls_psk_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">psk</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">identity</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">ciphers</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">psk</var></code>;<br><code>const char *<var class="pdparam">identity</var></code>;<br><code>const char *<var class="pdparam">ciphers</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49146768"></a><h3>Wills</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_will_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">topic</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">payloadlen</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">payload</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">qos</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">retain</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">topic</var></code>;<br><code>int <var class="pdparam">payloadlen</var></code>;<br><code>const void *<var class="pdparam">payload</var></code>;<br><code>int <var class="pdparam">qos</var></code>;<br><code>bool <var class="pdparam">retain</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_will_clear</b>(</code></td> |
| <td> |
| <var class="pdparam">struct mosquitto *mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code><var class="pdparam">struct mosquitto *mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49153936"></a><h3>Connect/disconnect</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_connect</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">host</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">port</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">keepalive</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">host</var></code>;<br><code>int <var class="pdparam">port</var></code>;<br><code>int <var class="pdparam">keepalive</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_connect_bind</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">host</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">port</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">keepalive</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">bind_address</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">host</var></code>;<br><code>int <var class="pdparam">port</var></code>;<br><code>int <var class="pdparam">keepalive</var></code>;<br><code>const char *<var class="pdparam">bind_address</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_connect_async</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">host</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">port</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">keepalive</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">host</var></code>;<br><code>int <var class="pdparam">port</var></code>;<br><code>int <var class="pdparam">keepalive</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_connect_bind_async</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">host</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">port</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">keepalive</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">bind_address</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>const char *<var class="pdparam">host</var></code>;<br><code>int <var class="pdparam">port</var></code>;<br><code>int <var class="pdparam">keepalive</var></code>;<br><code>const char *<var class="pdparam">bind_address</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_reconnect</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_reconnect_async</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_disconnect</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49175312"></a><h3>Publish</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_publish</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">mid</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">topic</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">payloadlen</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">payload</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">qos</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">retain</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int *<var class="pdparam">mid</var></code>;<br><code>const char *<var class="pdparam">topic</var></code>;<br><code>int <var class="pdparam">payloadlen</var></code>;<br><code>const void *<var class="pdparam">payload</var></code>;<br><code>int <var class="pdparam">qos</var></code>;<br><code>bool <var class="pdparam">retain</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49181584"></a><h3>Subscribe/unsubscribe</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_subscribe</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">mid</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">sub</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">qos</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int *<var class="pdparam">mid</var></code>;<br><code>const char *<var class="pdparam">sub</var></code>;<br><code>int <var class="pdparam">qos</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_unsubscribe</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">mid</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">sub</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int *<var class="pdparam">mid</var></code>;<br><code>const char *<var class="pdparam">sub</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49188880"></a><h3>Network loop</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">timeout</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">max_packets</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int <var class="pdparam">timeout</var></code>;<br><code>int <var class="pdparam">max_packets</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop_read</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">max_packets</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int <var class="pdparam">max_packets</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop_write</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">max_packets</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int <var class="pdparam">max_packets</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop_misc</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop_forever</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">timeout</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">max_packets</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>int <var class="pdparam">timeout</var></code>;<br><code>int <var class="pdparam">max_packets</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_socket</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">bool <b class="fsfunc">mosquitto_want_write</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49205136"></a><h3>Threaded network loop</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop_start</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_loop_stop</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">force</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>bool <var class="pdparam">force</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49209872"></a><h3>Misc client functions</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_max_inflight_messages_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">max_inflight_messages</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>unsigned int <var class="pdparam">max_inflight_messages</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_message_retry_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">message_retry</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>unsigned int <var class="pdparam">message_retry</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_reconnect_delay_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">reconnect_delay</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">reconnect_delay_max</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">reconnect_exponential_backoff</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>unsigned int <var class="pdparam">reconnect_delay</var></code>;<br><code>unsigned int <var class="pdparam">reconnect_delay_max</var></code>;<br><code>bool <var class="pdparam">reconnect_exponential_backoff</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_user_data_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">userdata</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void *<var class="pdparam">userdata</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49221136"></a><h3>Callbacks</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_connect_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_connect)(struct mosquitto *, void *, int)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_connect)(struct mosquitto *, void *, int)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_disconnect_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_disconnect)(struct mosquitto *, void *, int)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_disconnect)(struct mosquitto *, void *, int)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_publish_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_publish)(struct mosquitto *, void *, int)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_publish)(struct mosquitto *, void *, int)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_message_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_message)(struct mosquitto *, void *, const struct mosquitto_message *)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_message)(struct mosquitto *, void *, const struct mosquitto_message *)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_subscribe_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_subscribe)(struct mosquitto *, void *, int, int, const int *)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_subscribe)(struct mosquitto *, void *, int, int, const int *)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_unsubscribe_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_unsubscribe)(struct mosquitto *, void *, int)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_unsubscribe)(struct mosquitto *, void *, int)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_log_callback_set</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">(*on_unsubscribe)(struct mosquitto *, void *, int, const char *)</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto *<var class="pdparam">mosq</var></code>;<br><code>void <var class="pdparam">(*on_unsubscribe)(struct mosquitto *, void *, int, const char *)</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| <div class="refsect2"> |
| <a name="idp49238032"></a><h3>Utility functions</h3> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">const char *<b class="fsfunc">mosquitto_connack_string</b>(</code></td> |
| <td> |
| <var class="pdparam">connack_code</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>int <var class="pdparam">connack_code</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_message_copy</b>(</code></td> |
| <td> |
| <var class="pdparam">dst</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">src</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto_message *<var class="pdparam">dst</var></code>;<br><code>const struct mosquitto_message *<var class="pdparam">src</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_message_free</b>(</code></td> |
| <td> |
| <var class="pdparam">message</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>struct mosquitto_message **<var class="pdparam">message</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr> |
| <td><code class="funcdef">const char *<b class="fsfunc">mosquitto_strerror</b>(</code></td> |
| <td> |
| <var class="pdparam">mosq_errno</var><code>)</code>;</td> |
| <td> </td> |
| </tr></table> |
| <div class="paramdef-list"> |
| <code>int <var class="pdparam">mosq_errno</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_sub_topic_tokenise</b>(</code></td> |
| <td> |
| <var class="pdparam">subtopic</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">topics</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">count</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>const char *<var class="pdparam">subtopic</var></code>;<br><code>char ***<var class="pdparam">topics</var></code>;<br><code>int *<var class="pdparam">count</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_sub_topic_tokens_free</b>(</code></td> |
| <td> |
| <var class="pdparam">topics</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">count</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>char ***<var class="pdparam">topics</var></code>;<br><code>int <var class="pdparam">count</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| <div class="funcsynopsis"> |
| <table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"> |
| <tr> |
| <td><code class="funcdef">int <b class="fsfunc">mosquitto_topic_matches_sub</b>(</code></td> |
| <td> |
| <var class="pdparam">sub</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">topic</var>, </td> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> </td> |
| <td> |
| <var class="pdparam">result</var><code>)</code>;</td> |
| <td> </td> |
| </tr> |
| </table> |
| <div class="paramdef-list"> |
| <code>const char *<var class="pdparam">sub</var></code>;<br><code>const char *<var class="pdparam">topic</var></code>;<br><code>bool *<var class="pdparam">result</var></code>;</div> |
| <div class="funcprototype-spacer"> </div> |
| </div> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="idp49254416"></a><h2>Examples</h2> |
| <pre class="programlisting"> |
| #include <stdio.h> |
| #include <mosquitto.h> |
| |
| void my_message_callback(struct mosquitto *mosq, void *userdata, const struct mosquitto_message *message) |
| { |
| if(message->payloadlen){ |
| printf("%s %s\n", message->topic, message->payload); |
| }else{ |
| printf("%s (null)\n", message->topic); |
| } |
| fflush(stdout); |
| } |
| |
| void my_connect_callback(struct mosquitto *mosq, void *userdata, int result) |
| { |
| int i; |
| if(!result){ |
| /* Subscribe to broker information topics on successful connect. */ |
| mosquitto_subscribe(mosq, NULL, "$SYS/#", 2); |
| }else{ |
| fprintf(stderr, "Connect failed\n"); |
| } |
| } |
| |
| void my_subscribe_callback(struct mosquitto *mosq, void *userdata, int mid, int qos_count, const int *granted_qos) |
| { |
| int i; |
| |
| printf("Subscribed (mid: %d): %d", mid, granted_qos[0]); |
| for(i=1; i<qos_count; i++){ |
| printf(", %d", granted_qos[i]); |
| } |
| printf("\n"); |
| } |
| |
| void my_log_callback(struct mosquitto *mosq, void *userdata, int level, const char *str) |
| { |
| /* Pring all log messages regardless of level. */ |
| printf("%s\n", str); |
| } |
| |
| int main(int argc, char *argv[]) |
| { |
| int i; |
| char *host = "localhost"; |
| int port = 1883; |
| int keepalive = 60; |
| bool clean_session = true; |
| struct mosquitto *mosq = NULL; |
| |
| mosquitto_lib_init(); |
| mosq = mosquitto_new(NULL, clean_session, NULL); |
| if(!mosq){ |
| fprintf(stderr, "Error: Out of memory.\n"); |
| return 1; |
| } |
| mosquitto_log_callback_set(mosq, my_log_callback); |
| mosquitto_connect_callback_set(mosq, my_connect_callback); |
| mosquitto_message_callback_set(mosq, my_message_callback); |
| mosquitto_subscribe_callback_set(mosq, my_subscribe_callback); |
| |
| if(mosquitto_connect(mosq, host, port, keepalive)){ |
| fprintf(stderr, "Unable to connect.\n"); |
| return 1; |
| } |
| |
| while(!mosquitto_loop(mosq, -1, 1)){ |
| } |
| mosquitto_destroy(mosq); |
| mosquitto_lib_cleanup(); |
| return 0; |
| } |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="idp49259824"></a><h2>See Also</h2> |
| <span class="simplelist"> |
| <span class="citerefentry"><span class="refentrytitle"><a class="link" href="mosquitto-8.php" target="_top">mosquitto</a></span>(8)</span> |
| <span class="citerefentry"><span class="refentrytitle"><a class="link" href="mqtt-7.php" target="_top">mqtt</a></span>(7)</span> |
| </span> |
| </div> |
| <div class="refsect1"> |
| <a name="idp49264304"></a><h2>Author</h2> |
| <p>Roger Light <code class="email"><<a class="email" href="mailto:roger@atchoo.org">roger@atchoo.org</a>></code></p> |
| </div> |
| </div><?php include '../_includes/footer.php' ?> |