<?xml version='1.0' encoding='UTF-8'?>
|
<?xml-stylesheet type="text/xsl" href="manpage.xsl"?>
|
|
<refentry xml:id="libmosquitto" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<refmeta>
|
<refentrytitle>libmosquitto</refentrytitle>
|
<manvolnum>3</manvolnum>
|
<refmiscinfo class="source">Mosquitto Project</refmiscinfo>
|
<refmiscinfo class="manual">Library calls</refmiscinfo>
|
</refmeta>
|
|
<refnamediv>
|
<refname>libmosquitto</refname>
|
<refpurpose>MQTT version 3.1.1 client library</refpurpose>
|
</refnamediv>
|
|
<refsect1>
|
<title>Description</title>
|
<para>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.</para>
|
<para>This man page is woefully incomplete, please see the comments
|
in mosquitto.h for missing functions and a description of the
|
functions.</para>
|
</refsect1>
|
|
<refsect1>
|
<title>libmosquitto symbol names</title>
|
<para>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!</para>
|
</refsect1>
|
|
<refsect1>
|
<title>Functions</title>
|
|
<refsect2>
|
<title>Library version</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_lib_version</function></funcdef>
|
<paramdef>int *<parameter>major</parameter></paramdef>
|
<paramdef>int *<parameter>minor</parameter></paramdef>
|
<paramdef>int *<parameter>revision</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
<para>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.</para>
|
</refsect2>
|
|
<refsect2>
|
<title>Library initialisation and cleanup</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_lib_init</function></funcdef>
|
<void/></funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_lib_cleanup</function></funcdef>
|
<void/></funcprototype></funcsynopsis>
|
<para>Call mosquitto_lib_init() before using any of the other
|
library functions and mosquitto_lib_cleanup() after finishing
|
with the library.</para>
|
</refsect2>
|
|
<refsect2>
|
<title>Client constructor/destructor</title>
|
|
<funcsynopsis><funcprototype><funcdef>struct mosquitto *<function>mosquitto_new</function></funcdef>
|
<paramdef>const char *<parameter>id</parameter></paramdef>
|
<paramdef>bool <parameter>clean_session</parameter></paramdef>
|
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
<para>Create a new mosquitto client instance.</para>
|
|
<funcsynopsis><funcprototype><funcdef>void <function>mosquitto_destroy</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
<para>Use to free memory associated with a mosquitto client instance.</para>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_reinitialise</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>id</parameter></paramdef>
|
<paramdef>bool <parameter>clean_session</parameter></paramdef>
|
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Authentication and encryption</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_username_pw_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>username</parameter></paramdef>
|
<paramdef>const char *<parameter>password</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_tls_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>cafile</parameter></paramdef>
|
<paramdef>const char *<parameter>capath</parameter></paramdef>
|
<paramdef>const char *<parameter>certfile</parameter></paramdef>
|
<paramdef>const char *<parameter>keyfile</parameter></paramdef>
|
<paramdef>int <parameter>(*pw_callback)(char *buf, int size, int rwflag, void *userdata)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_tls_opts_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int <parameter>cert_reqs</parameter></paramdef>
|
<paramdef>const char *<parameter>tls_version</parameter></paramdef>
|
<paramdef>const char *<parameter>ciphers</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_tls_insecure_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>bool <parameter>value</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_tls_psk_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>psk</parameter></paramdef>
|
<paramdef>const char *<parameter>identity</parameter></paramdef>
|
<paramdef>const char *<parameter>ciphers</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Wills</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_will_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>topic</parameter></paramdef>
|
<paramdef>int <parameter>payloadlen</parameter></paramdef>
|
<paramdef>const void *<parameter>payload</parameter></paramdef>
|
<paramdef>int <parameter>qos</parameter></paramdef>
|
<paramdef>bool <parameter>retain</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_will_clear</function></funcdef>
|
<paramdef><parameter>struct mosquitto *mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Connect/disconnect</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_connect</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>host</parameter></paramdef>
|
<paramdef>int <parameter>port</parameter></paramdef>
|
<paramdef>int <parameter>keepalive</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_connect_bind</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>host</parameter></paramdef>
|
<paramdef>int <parameter>port</parameter></paramdef>
|
<paramdef>int <parameter>keepalive</parameter></paramdef>
|
<paramdef>const char *<parameter>bind_address</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_connect_async</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>host</parameter></paramdef>
|
<paramdef>int <parameter>port</parameter></paramdef>
|
<paramdef>int <parameter>keepalive</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_connect_bind_async</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>const char *<parameter>host</parameter></paramdef>
|
<paramdef>int <parameter>port</parameter></paramdef>
|
<paramdef>int <parameter>keepalive</parameter></paramdef>
|
<paramdef>const char *<parameter>bind_address</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_reconnect</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_reconnect_async</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_disconnect</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Publish</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_publish</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int *<parameter>mid</parameter></paramdef>
|
<paramdef>const char *<parameter>topic</parameter></paramdef>
|
<paramdef>int <parameter>payloadlen</parameter></paramdef>
|
<paramdef>const void *<parameter>payload</parameter></paramdef>
|
<paramdef>int <parameter>qos</parameter></paramdef>
|
<paramdef>bool <parameter>retain</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Subscribe/unsubscribe</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_subscribe</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int *<parameter>mid</parameter></paramdef>
|
<paramdef>const char *<parameter>sub</parameter></paramdef>
|
<paramdef>int <parameter>qos</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_unsubscribe</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int *<parameter>mid</parameter></paramdef>
|
<paramdef>const char *<parameter>sub</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Network loop</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int <parameter>timeout</parameter></paramdef>
|
<paramdef>int <parameter>max_packets</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop_read</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int <parameter>max_packets</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop_write</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int <parameter>max_packets</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop_misc</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop_forever</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>int <parameter>timeout</parameter></paramdef>
|
<paramdef>int <parameter>max_packets</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_socket</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>bool <function>mosquitto_want_write</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Threaded network loop</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop_start</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_loop_stop</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>bool <parameter>force</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Misc client functions</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_max_inflight_messages_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>unsigned int <parameter>max_inflight_messages</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_reconnect_delay_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>unsigned int <parameter>reconnect_delay</parameter></paramdef>
|
<paramdef>unsigned int <parameter>reconnect_delay_max</parameter></paramdef>
|
<paramdef>bool <parameter>reconnect_exponential_backoff</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_user_data_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Callbacks</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_connect_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_connect)(struct mosquitto *, void *, int)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_disconnect_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_disconnect)(struct mosquitto *, void *, int)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_publish_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_publish)(struct mosquitto *, void *, int)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_message_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_message)(struct mosquitto *, void *, const struct mosquitto_message *)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_subscribe_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_subscribe)(struct mosquitto *, void *, int, int, const int *)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_unsubscribe_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_unsubscribe)(struct mosquitto *, void *, int)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_log_callback_set</function></funcdef>
|
<paramdef>struct mosquitto *<parameter>mosq</parameter></paramdef>
|
<paramdef>void <parameter>(*on_unsubscribe)(struct mosquitto *, void *, int, const char *)</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Utility functions</title>
|
|
<funcsynopsis><funcprototype><funcdef>const char *<function>mosquitto_connack_string</function></funcdef>
|
<paramdef>int <parameter>connack_code</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_message_copy</function></funcdef>
|
<paramdef>struct mosquitto_message *<parameter>dst</parameter></paramdef>
|
<paramdef>const struct mosquitto_message *<parameter>src</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_message_free</function></funcdef>
|
<paramdef>struct mosquitto_message **<parameter>message</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>const char *<function>mosquitto_strerror</function></funcdef>
|
<paramdef>int <parameter>mosq_errno</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_sub_topic_tokenise</function></funcdef>
|
<paramdef>const char *<parameter>subtopic</parameter></paramdef>
|
<paramdef>char ***<parameter>topics</parameter></paramdef>
|
<paramdef>int *<parameter>count</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_sub_topic_tokens_free</function></funcdef>
|
<paramdef>char ***<parameter>topics</parameter></paramdef>
|
<paramdef>int <parameter>count</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_topic_matches_sub</function></funcdef>
|
<paramdef>const char *<parameter>sub</parameter></paramdef>
|
<paramdef>const char *<parameter>topic</parameter></paramdef>
|
<paramdef>bool *<parameter>result</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
|
<refsect2>
|
<title>Helper functions</title>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_subscribe_simple</function></funcdef>
|
<paramdef>struct mosquitto_message **<parameter>message</parameter></paramdef>
|
<paramdef>int <parameter>msg_count</parameter></paramdef>
|
<paramdef>bool <parameter>want_retained</parameter></paramdef>
|
<paramdef>const char *<parameter>topic</parameter></paramdef>
|
<paramdef>int<parameter>qos</parameter></paramdef>
|
<paramdef>const char *<parameter>host</parameter></paramdef>
|
<paramdef>int <parameter>port</parameter></paramdef>
|
<paramdef>const char *<parameter>client_id</parameter></paramdef>
|
<paramdef>int <parameter>keepalive</parameter></paramdef>
|
<paramdef>bool <parameter>clean_session</parameter></paramdef>
|
<paramdef>const char *<parameter>username</parameter></paramdef>
|
<paramdef>const char *<parameter>password</parameter></paramdef>
|
<paramdef>const struct libmosquitto_will *<parameter>will</parameter></paramdef>
|
<paramdef>const struct libmosquitto_tls *<parameter>tls</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
|
<funcsynopsis><funcprototype><funcdef>int <function>mosquitto_subscribe_callback</function></funcdef>
|
<paramdef>int <parameter>(*callback)(struct mosquitto *, void *, const struct mosquitto_message *)</parameter></paramdef>
|
<paramdef>void *<parameter>userdata</parameter></paramdef>
|
<paramdef>const char *<parameter>topic</parameter></paramdef>
|
<paramdef>int <parameter>qos</parameter></paramdef>
|
<paramdef>const char *<parameter>host</parameter></paramdef>
|
<paramdef>int <parameter>port</parameter></paramdef>
|
<paramdef>const char *<parameter>client_id</parameter></paramdef>
|
<paramdef>int <parameter>keepalive</parameter></paramdef>
|
<paramdef>bool <parameter>clean_session</parameter></paramdef>
|
<paramdef>const char *<parameter>username</parameter></paramdef>
|
<paramdef>const char *<parameter>password</parameter></paramdef>
|
<paramdef>const struct libmosquitto_will *<parameter>will</parameter></paramdef>
|
<paramdef>const struct libmosquitto_tls *<parameter>tls</parameter></paramdef>
|
</funcprototype></funcsynopsis>
|
</refsect2>
|
</refsect1>
|
|
<refsect1>
|
<title>Examples</title>
|
<para><programlisting language="C">
|
#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;
|
}
|
|
mosquitto_loop_forever(mosq, -1, 1);
|
|
mosquitto_destroy(mosq);
|
mosquitto_lib_cleanup();
|
return 0;
|
}
|
</programlisting></para>
|
</refsect1>
|
<refsect1>
|
<title>See Also</title>
|
<simplelist type="inline">
|
<member>
|
<citerefentry>
|
<refentrytitle><link xlink:href="mosquitto-8.html">mosquitto</link></refentrytitle>
|
<manvolnum>8</manvolnum>
|
</citerefentry>
|
<citerefentry>
|
<refentrytitle><link xlink:href="mqtt-7.html">mqtt</link></refentrytitle>
|
<manvolnum>7</manvolnum>
|
</citerefentry>
|
</member>
|
</simplelist>
|
</refsect1>
|
|
<refsect1>
|
<title>Author</title>
|
<para>Roger Light <email>roger@atchoo.org</email></para>
|
</refsect1>
|
</refentry>
|