• Home
  • Downloads
  • Documentation
  • Bugs / Support
  • spacer

Mosquitto is an open source (BSD licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for "machine to machine" messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino. A good example of this is all of the work that Andy Stanford-Clark (one of the originators of MQTT) has done in home monitoring and automation with his twittering house and twittering ferry. Andy gave a talk on this at OggCamp that explains a bit about MQTT and how he uses it. The slides and audio are available online at slideshare.

spacer 0

Version 1.1.3 released

Monday, February 11th, 2013 | Uncategorized

This is a minor bugfix release that addresses some problems identified during Debian packaging.

Broker

  • mosquitto_passwd utility now uses tmpfile() to generate its temporary data storage file. It also creates a backup file that can be used to recover data if an errors occur.

Other

  • Build script fixes to help packaging on Debian.

 

spacer 0

MQTT standardisation – OASIS call for participation

Monday, February 4th, 2013 | Events

The MQTT protocol is going for standardisation at OASIS. A technical committee is being formed and there is a call for participation for interested parties. There are details at the link below:

https://www.oasis-open.org/news/announcements/call-for-participation-message-queuing-telemetry-transport-mqtt-tc

The plan seems to be to take the 3.1 spec as it is for standardisation and see about changes in the future. If you are interested in taking part see the link above, but note that you need to be a paid up member of OASIS.

spacer 0

Version 1.1.2 released

Wednesday, January 30th, 2013 | Releases

This is a bugfix release.

Client library

  • Fix tls_cert_reqs not being set to SSL_VERIFY_PEER by default. This meant
    that clients were not verifying the server certificate when connecting over
    TLS. This affects the C, C++ and Python libraries.

Source and binaries are available on the downloads page.

spacer 0

Version 1.1.1 released

Wednesday, January 16th, 2013 | Uncategorized

This is a bugfix release.

Broker

  • Fix crash on reload if using acl patterns.

Client library

  • Fix static C++ functions not being exported on Windows. Fixes bug #1098256.

Binaries should be available shortly.

spacer 4

Mosquitto Debian repository

Thursday, January 10th, 2013 | Packaging

On a previous post I described how to make mosquitto debian packages. This turned out to be a bit problematic, so I’ve now put up an experimental debian repository for mosquitto. It includes packages for the i386, amd64, armel and raspberry pi (raspbian armhf ) architectures.

It’s worth repeating that this is experimental – there are package changes that haven’t been vetted by a Debian developer so it’s possible something will break. I’ve tested myself and had no problems so far.

To use the new repository you should first import the repository package signing key:

wget repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key

Then make the repository available to apt:

cd /etc/apt/sources.list.d/
sudo wget repo.mosquitto.org/debian/mosquitto-repo.list

Then update apt information:

apt-get update

And discover what mosquitto packages are available:

apt-cache search mosquitto

Or just install:

apt-get install mosquitto
spacer 0

libmosquitto Go bindings

Monday, December 24th, 2012 | Solutions

I just discovered that Shane Hanna has written a Go language binding for libmosquitto available at https://bitbucket.org/shanehanna/mosquitto/. Good work Shane! Note that the readme file states:

Doesn’t expose all of libmosquitto, just what I’ve needed so far.

so you shouldn’t necessarily expect everything to work.

spacer 1

Version 1.1 released

Wednesday, December 19th, 2012 | Releases, Uncategorized

This is a feature and bugfix release.

Broker

  • Add $SYS/broker/messages/dropped
  • Add $SYS/broker/clients/expired
  • Replace $SYS/broker/+/per second/+ with moving average versions published at $SYS/broker/load/#
  • Add $SYS/broker/load/sockets/+ and $SYS/broker/load/connections/+
  • Documentation on password file format has been fixed.
  • Disable SSL compression. This reduces memory usage significantly and removes the possibility of CRIME type attacks.
  • Enable SSL_MODE_RELEASE_BUFFERS mode to reduce SSL memory usage further.
  • Add allow_duplicate_messages option.
  • ACL files can now have comment lines with # as the first character.
  • Display message on startup about which config is being loaded.
  • Fix max_inflight_messages and max_queued_messages not being applied.
  • Fix documentation error in mosquitto.conf.
  • Ensure that QoS 2 queued messages are sent out in a timely manner.
  • Local bridges now act on clean_session correctly.
  • Local bridges with clean_session==false now remove unused subscriptions on broker restart.
  • The $SYS/broker/heap/# messages now no longer include “bytes” as part of the string for ease of use.

Client library

  • Free memory used by OpenSSL in mosquitto_lib_cleanup() where possible.
  • Change WebSocket subprotocol name to mqttv3.1 to make future changes easier and for compatibility with other implementations.
  • mosquitto_loop_read() and mosquitto_loop_write() now handle errors themselves rather than having mosquitto_loop() handle their errors. This makes using them in a separate event loop more straightforward.
  • Add mosquitto_loop_forever() / loop_forever() function call to make simple clients easier.
  • Disable SSL compression. This reduces memory usage significantly and removes the possibility of CRIME type attacks.
  • Enable SSL_MODE_RELEASE_BUFFERS mode to reduce SSL memory usage further.
  • mosquitto_tls_set() will now return an error or raise an exception immediately if the CA certificate or client certificate/key cannot be accessed.
  • Fix potential memory leaks on connection failures.
  • Don’t produce return error from mosquitto_loop() if a system call is interrupted. This prevents disconnects/reconnects in threaded mode and simplifies non-threaded client handling.
  • Ignore SIGPIPE to prevent unnecessary client quits in threaded mode.
  • Fix document error for mosquitto_message_retry_set().
  • Fix mosquitto_topic_matches_sub() for subscriptions with + as the final character. Fixes bug #1085797.
  • Rename all “obj” parameters to “userdata” for consistency with other libraries.
  • Reset errno before network read/write to ensure EAGAIN isn’t mistakenly returned.
  • The message queue length is now tracked and used to determine the maximum number of packets to process at once. This removes the need for the max_packets parameter which is now unused.
  • Fix incorrect error value in Python error_string() function. Fixes bug #1086777.
  • Reset last message in/out timer in Python module when we send a PINGREQ. Fixes too-early disconnects.

Clients

  • Clients now display their own version number and library version number in their help messages.
  • Fix “mosquitto_pub -l -q 2″ disconnecting before all messages were transmitted.
  • Fix potential out-of-bounds array access with client ids. Fixes bug #1083182.

Other

  • mosquitto_passwd can now convert password files with plain text files to hashed versions.
spacer 12

Making Mosquitto packages for Debian yourself

Tuesday, November 27th, 2012 | Packaging, Solutions

As Debian has been in feature freeze since before Mosquitto 1.0 was released, it will be a long time until there is an updated version of Mosquitto in Debian. It is, however, fairly straightforward to do the packaging yourself. Here’s how to do that from the command line.

Download and unpack the mosquitto source tarball:

wget mosquitto.org/files/source/mosquitto-1.1.2.tar.gz
tar -zxf mosquitto-1.1.2.tar.gz

Rename the tarball to match Debian requirements:

mv mosquitto-1.1.2.tar.gz mosquitto_1.1.2.orig.tar.gz

The current mosquitto packaging files are available at mentors.debian.net/debian/pool/main/m/mosquitto/ – you want the .debian.tar.gz:

wget mentors.debian.net/debian/pool/main/m/mosquitto/mosquitto_1.1.2-1.debian.tar.gz
tar -zxf mosquitto_1.1.2-1.debian.tar.gz -C mosquitto-1.1/

The next step is to build the package, but you may find that you need to install some packages first:

sudo apt-get install build-essential python quilt libwrap0-dev libssl-dev devscripts python-setuptools

To build the packages do

cd mosquitto-1.1.2/
debuild

You should now have a list of .deb files in the parent directory which you can install with:

sudo dpkg -i <deb file>

Please leave comments if you find this useful or have any problems.

spacer 0

Version 1.0.5 released

Saturday, November 3rd, 2012 | Releases

This is a bugfix release.

Broker

  • Fix crash when the broker has use_identity_as_username set to true but a client connects without a certificate.
  • mosquitto_passwd should only be installed if WITH_TLS=yes.

Library

  • Use symbolic errno values rather than numbers in Python module to avoid cross platform issues (incorrect errno on Mac OS).

Other

  • Build script fixes for FreeBSD.

 

spacer 0

Version 1.0.4 released

Wednesday, October 17th, 2012 | Releases

This is a bugfix release.

Broker

  • Deal with poll() POLLIN/POLLOUT before POLL[RD]HUP to correctly handle the case where a client sends data and immediately closes its socket.

Library

  • Fix memory leak with messages of QoS=2. Fixes bug #1064981.
  • Fix potential thread synchronisation problem with outgoing packets in the Python module. Fixes bug #1064977.

Clients

  • Fix “mosquitto_sub -l” incorrectly only sending one message per second.
« Previous posts

spacer Back to top
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.