mirror of
https://github.com/eclipse/mosquitto.git
synced 2025-05-09 01:01:11 +08:00
Man page improvements - document MQTT support.
This commit is contained in:
parent
b6187c8880
commit
99833795f2
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user