Mosquitto is an open source implementation of a server for version 5.0, 3.1.1,
and 3.1 of the MQTT protocol. It also includes a C and C++ client library,
the mosquitto_pub mosquitto_rr, and mosquitto_sub utilities for
publishing and subscribing, and the mosquitto_ctrl, mosquitto_signal, and
mosquitto_passwd applications for helping administer the broker.
See the following links for more information on MQTT:
- Community page: http://mqtt.org/
- MQTT v3.1.1 standard: https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
- MQTT v5.0 standard: https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
Mosquitto project information is available at the following locations:
- Main homepage: https://mosquitto.org/
- Find existing bugs or submit a new bug: https://github.com/eclipse-mosquitto/mosquitto/issues
- Source code repository: https://github.com/eclipse-mosquitto/mosquitto
There is also a public test server available at https://test.mosquitto.org/
See https://mosquitto.org/download/ for details on installing binaries for various platforms.
If you have installed a binary package the broker should have been started automatically. If not, it can be started with a very basic configuration:
mosquitto
Then use mosquitto_sub to subscribe to a topic:
mosquitto_sub -t 'test/topic' -v
And to publish a message:
mosquitto_pub -t 'test/topic' -m 'hello world'
Note that starting the broker like this allows anonymous/unauthenticated access but only from the local computer, so it's only really useful for initial testing.
If you want to have clients from another computer connect, you will need to
provide a configuration file. If you have installed from a binary package, you
will probably already have a configuration file at somewhere like
/etc/mosquitto/mosquitto.conf. If you've compiled from source, you can write
your config file then run as mosquitto -c /path/to/mosquitto.conf.
To start your config file you define a listener and you will need to think about what authentication you require. It is not advised to run your broker with anonymous access when it is publicly available.