|
|
|
@ -39,12 +39,12 @@
|
|
|
|
|
<term><option>-c</option></term>
|
|
|
|
|
<term><option>--config-file</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>
|
|
|
|
|
<para>
|
|
|
|
|
Load configuration from a file. If not given, then the broker will listen on port 1883 bound to the loopback interface,
|
|
|
|
|
and the default values as described in
|
|
|
|
|
and the default values as described in
|
|
|
|
|
<citerefentry><refentrytitle><link xlink:href="mosquitto_conf-5.html">mosquitto.conf</link></refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
|
|
|
|
are used.
|
|
|
|
|
</para>
|
|
|
|
|
are used.
|
|
|
|
|
</para>
|
|
|
|
|
<important><para>See the <option>-p</option> option for a description of changes in behaviour from 1.6.x to 2.0.</para></important>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
@ -91,6 +91,231 @@
|
|
|
|
|
</para>
|
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
|
<title>MQTT Support</title>
|
|
|
|
|
<para>Mosquitto supports MQTT v5.0, v3.1.1, and v3.1.</para>
|
|
|
|
|
|
|
|
|
|
<refsect2>
|
|
|
|
|
<title>MQTT v5.0</title>
|
|
|
|
|
<para>
|
|
|
|
|
Mosquitto provides full MQTT v5.0 support, but some features
|
|
|
|
|
are not used directly. The following sections describe the new
|
|
|
|
|
features and explain where Mosquitto does not make use of a feature.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<refsect3>
|
|
|
|
|
<title>Features</title>
|
|
|
|
|
<variablelist>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Enhanced authentication</option></term>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Basic MQTT authentication uses username/password
|
|
|
|
|
checks. Enhanced authentication allows different
|
|
|
|
|
authentication schemes to be integrated into MQTT,
|
|
|
|
|
and even those schemes with multiple step processes.
|
|
|
|
|
Clients request a particular type of authentication
|
|
|
|
|
and if the broker is configured for that scheme the
|
|
|
|
|
authentication continues. Mosquitto supports
|
|
|
|
|
enhanced authentication through plugins.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Error handling</option></term>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Most MQTT packets now have the concept of a
|
|
|
|
|
<option>reason code</option>
|
|
|
|
|
which indicates success or failure, and what the failure
|
|
|
|
|
was. Mosquitto provides full support for reason codes,
|
|
|
|
|
but does not make use of the
|
|
|
|
|
<option>reason string</option>
|
|
|
|
|
feature which can be used to provide a human readable
|
|
|
|
|
error string to explain the reason code.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Flow control</option></term>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
The number of "in flight" messages for QoS 1 and QoS
|
|
|
|
|
2 can be controlled by both the client and the
|
|
|
|
|
broker.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Request / response</option></term>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
MQTT v5.0 adds a request/response pattern that
|
|
|
|
|
allows a client to publish a message and instruct
|
|
|
|
|
the subscribers of that message where to publish a
|
|
|
|
|
response.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Server redirection</option></term>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
Server redirection is the concept of telling a
|
|
|
|
|
client to connect to a different MQTT broker, either
|
|
|
|
|
on CONNECT or with a broker initiated DISCONNECT.
|
|
|
|
|
Mosquitto does not currently make use of this
|
|
|
|
|
feature.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Shared subscriptions</option></term>
|
|
|
|
|
<listitem><para>
|
|
|
|
|
When multiple clients subscribe to the same shared
|
|
|
|
|
subscription, only one client out of the group will
|
|
|
|
|
receive each message which allows for distributing
|
|
|
|
|
work loads.
|
|
|
|
|
</para></listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
</variablelist>
|
|
|
|
|
</refsect3>
|
|
|
|
|
|
|
|
|
|
<refsect3>
|
|
|
|
|
<title>Packet properties</title>
|
|
|
|
|
<para>
|
|
|
|
|
MQTT v5.0 allows properties to be added to packets to
|
|
|
|
|
control certain behaviour. Unless noted, Mosquitto
|
|
|
|
|
support the properties listed below.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>CONNECT</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Authentication data</para></listitem>
|
|
|
|
|
<listitem><para>Authentication method</para></listitem>
|
|
|
|
|
<listitem><para>Maximum packet size</para></listitem>
|
|
|
|
|
<listitem><para>Receive maximum</para></listitem>
|
|
|
|
|
<listitem><para>Request problem information - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Request response information - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Session expiry interval</para></listitem>
|
|
|
|
|
<listitem><para>Topic alias maximum</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>Last will and testament</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Content type</para></listitem>
|
|
|
|
|
<listitem><para>Correlation data</para></listitem>
|
|
|
|
|
<listitem><para>Message expiry interval</para></listitem>
|
|
|
|
|
<listitem><para>Payload format indicator</para></listitem>
|
|
|
|
|
<listitem><para>Response topic</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
<listitem><para>Will delay interval</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>CONNACK</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Assigned client identifier</para></listitem>
|
|
|
|
|
<listitem><para>Authentication data</para></listitem>
|
|
|
|
|
<listitem><para>Authentication method</para></listitem>
|
|
|
|
|
<listitem><para>Maximum packet size</para></listitem>
|
|
|
|
|
<listitem><para>Maximum qos</para></listitem>
|
|
|
|
|
<listitem><para>Reason string - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Receive maximum</para></listitem>
|
|
|
|
|
<listitem><para>Response information - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Retain available</para></listitem>
|
|
|
|
|
<listitem><para>Server keep alive</para></listitem>
|
|
|
|
|
<listitem><para>Server reference - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Session expiry interval</para></listitem>
|
|
|
|
|
<listitem><para>Shared subscription available</para></listitem>
|
|
|
|
|
<listitem><para>Subscription identifiers available</para></listitem>
|
|
|
|
|
<listitem><para>Topic alias maximum</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
<listitem><para>Wildcard subscription available</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>PUBLISH</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Content type</para></listitem>
|
|
|
|
|
<listitem><para>Correlation data</para></listitem>
|
|
|
|
|
<listitem><para>Message expiry interval</para></listitem>
|
|
|
|
|
<listitem><para>Payload format indicator</para></listitem>
|
|
|
|
|
<listitem><para>Response topic</para></listitem>
|
|
|
|
|
<listitem><para>Subscription identifier</para></listitem>
|
|
|
|
|
<listitem><para>Topic alias</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>PUBACK / PUBREC / PUBREL / PUBCOMP / SUBACK / SUBSCRIBE / SUBACK</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Reason string - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>SUBSCRIBE</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Subscription identifier</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>DISCONNECT</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Reason string - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Server reference - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>Session expiry interval</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>AUTH</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
<listitem><para>Authentication method</para></listitem>
|
|
|
|
|
<listitem><para>Authentication data</para></listitem>
|
|
|
|
|
<listitem><para>Reason string - supported but not used</para></listitem>
|
|
|
|
|
<listitem><para>User property</para></listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
</variablelist>
|
|
|
|
|
</refsect3>
|
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
|
|
<refsect2>
|
|
|
|
|
<title>MQTT v3.1.1</title>
|
|
|
|
|
<para>Mosquitto provides full MQTT v3.1.1 support.</para>
|
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
|
|
<refsect2>
|
|
|
|
|
<title>MQTT v3.1</title>
|
|
|
|
|
<para>Mosquitto provides full MQTT v3.1 support.</para>
|
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
|
|
<refsect2>
|
|
|
|
|
<title>MQTT v3</title>
|
|
|
|
|
<para>
|
|
|
|
|
MQTT v3 is an obsolete version of the protocol that does not
|
|
|
|
|
support username/password authentication and used the
|
|
|
|
|
<option>clean start</option> flag in the CONNECT packet which
|
|
|
|
|
applied only to the start of a session. An MQTT v3 client
|
|
|
|
|
will be able to successfully connect to a Mosquitto instance
|
|
|
|
|
that does not require authentication.
|
|
|
|
|
</para>
|
|
|
|
|
</refsect2>
|
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
|
<refsect1>
|
|
|
|
|
<title>Broker Status</title>
|
|
|
|
|
<para>Clients can find information about the broker by subscribing to
|
|
|
|
@ -331,21 +556,21 @@
|
|
|
|
|
<para>The total number of retained messages active on the broker.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>$SYS/broker/store/messages/count</option></term>
|
|
|
|
|
<term><option>$SYS/broker/messages/stored</option> (deprecated)</term>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>$SYS/broker/store/messages/count</option></term>
|
|
|
|
|
<term><option>$SYS/broker/messages/stored</option> (deprecated)</term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>The number of messages currently held in the message
|
|
|
|
|
store. This includes retained messages and messages
|
|
|
|
|
queued for durable clients.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>$SYS/broker/store/messages/bytes</option></term>
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term><option>$SYS/broker/store/messages/bytes</option></term>
|
|
|
|
|
<listitem>
|
|
|
|
|
<para>The number of bytes currently held by message payloads
|
|
|
|
|
in the message store. This includes retained messages
|
|
|
|
|
and messages queued for durable clients.</para>
|
|
|
|
|
in the message store. This includes retained messages
|
|
|
|
|
and messages queued for durable clients.</para>
|
|
|
|
|
</listitem>
|
|
|
|
|
</varlistentry>
|
|
|
|
|
<varlistentry>
|
|
|
|
|