Skip to content

Tifaifai/mosquitto

 
 

Repository files navigation

Eclipse Mosquitto

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, and the mosquitto_pub and mosquitto_sub utilities for publishing and subscribing.

Links

See the following links for more information on MQTT:

Mosquitto project information is available at the following locations:

There is also a public test server available at https://test.mosquitto.org/

Installing

See https://mosquitto.org/download/ for details on installing binaries for various platforms.

Quick start

If you have installed a binary package the broker should have been started automatically. If not, it can be started with a 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'

To dynamically create/delete/show a bridge, use:

Mosquitto broker implement SYS-Topics. All SYS-Topics start $SYS and are read-only for MQTT clients. To dynamically create or delete a bridge, mosquitto use new topics: BRIDGE-Topics. All BRIDGE-Topics start with $BRIDGE and are read-write with ACL Protection.

Create Bridge:

  mosquitto_bridge -p 1883 -c testBridge -a 127.0.0.1 -R 1884 -n -t \# -q 0 -l local/ -r remote/ -D both
  mosquitto_bridge -p 1883 -c testBridge -a 127.0.0.1 -R 1884 -n -t \# -q 0 -l test/1883/ -r test/1884/ -D both

  with json format:
  mosquitto_bridge -p 1883 -c testBridge -a 127.0.0.1 -R 1884 -n -j -t \# -q 0 -l test/1883/ -r test/1884/ -D both

  or via publish message to create a bridge:

  mosquitto_pub -h 127.0.0.1 -p 1883 -t '$BRIDGE/new' -m 'connection testBridge
  address 127.0.0.1:1884
  topic # both 0 test/1883/ test/1884/
  '

  with json format:
  mosquitto_pub -h 127.0.0.1 -p 1883 -t '$BRIDGE/new' -m '{"bridges":[{"connection":"testBridge","addresses":[{"address":"127.0.0.1","port":1884}],"topic":"#","direction":"both","qos":0,"local_prefix":"test/1883/","remote_prefix":"test/1884/"}]}'

Delete Bridge:

  mosquitto_bridge -p 1883 -c testBridge -d

  with json format:
  mosquitto_bridge -p 1883 -c testBridge -d -j

  or via publish message to delete a bridge:

  mosquitto_pub -h 127.0.0.1 -p 1883 -t '$BRIDGE/del' -m 'connection testBridge'

  with json format:
  mosquitto_pub -h 127.0.0.1 -p 1883 -t '$BRIDGE/del' -m '{"connection":"testBridge"}'

  Show all Bridges:

  mosquitto_bridge -p 1883 -k

  with json format:
  mosquitto_bridge -p 1883 -k -j

Documentation

Documentation for the broker, clients and client library API can be found in the man pages, which are available online at https://mosquitto.org/man/. There are also pages with an introduction to the features of MQTT, the mosquitto_passwd utility for dealing with username/passwords, and a description of the configuration file options available for the broker.

Detailed client library API documentation can be found at https://mosquitto.org/api/

Building from source

To build from source the recommended route for end users is to download the archive from https://mosquitto.org/download/.

On Windows and Mac, use cmake to build. On other platforms, just run make to build. For Windows, see also README-windows.md.

If you are building from the git repository then the documentation will not already be built. Use make binary to skip building the man pages, or install docbook-xsl on Debian/Ubuntu systems.

Build Dependencies

  • c-ares (libc-ares-dev on Debian based systems) - only when compiled with make WITH_SRV=yes
  • libwebsockets (libwebsockets-dev) - enable with make WITH_WEBSOCKETS=yes
  • openssl (libssl-dev on Debian based systems) - disable with make WITH_TLS=no
  • xsltproc (xsltproc and docbook-xsl on Debian based systems) - only needed when building from git sources - disable with make WITH_DOCS=no
  • uthash / utlist - bundled versions of these headers are provided, disable their use with make WITH_BUNDLED_DEPS=no
  • cJSON - for client JSON output support. Disable with make WITH_CJSON=no Auto detected with CMake.

Equivalent options for enabling/disabling features are available when using the CMake build.

Credits

Mosquitto was written by Roger Light [email protected]

Master: Travis Build Status (master) Develop: Travis Build Status (develop) Fixes: Travis Build Status (fixes)

Packages

No packages published

Languages

  • C 64.4%
  • Python 28.2%
  • Makefile 2.5%
  • C++ 1.5%
  • Dockerfile 1.1%
  • CMake 0.8%
  • Other 1.5%