We continue with our series of entries dedicated to MQTT, the popular protocol for IoT, seeing some of the main available MQTT brokers.
In previous entries, we have seen some of the main protocols for IoT, the MQTT protocol, and what they are and how to properly organize topics in an MQTT project.
As we saw, one of the main keys to MQTT communication is the Broker, which is the program responsible for receiving the messages sent by clients and distributing them among each other in a pub-sub system.
When you see tutorials on the Internet, within the #Maker field, you will usually find reference to the well-known Mosquitto, one of the most widely used Open Source brokers in the domestic sector. We will see it in upcoming entries.
But it is important to remember that it is not the only MQTT broker, especially in professional environments. On the contrary, and as expected, there are a large number of available MQTT brokers, each with its own characteristics, advantages, and disadvantages.
Choosing the most suitable broker for our project conditions its proper functioning and success. So, we are going to take a quick look at some of the main available MQTT brokers.
- Mosquitto. As we said, it is the best-known MQTT broker in the domestic/#maker sector. It is an Open Source broker developed by the Eclipse foundation and distributed under the EPL/EDL license. It is programmed in C, and is multiplatform. It is a lightweight broker suitable for use on low-power servers.
- Mosca. It is an Open Source MQTT broker for Node.js, developed in Javascript by Matteo Collina. It can be used as a standalone application or embedded in any Node.js project.
- Aedes. From the same author as Mosca, Aedes is an Open Source MQTT broker server for Node.js designed to be a replacement for Mosca.
- HBMQTT. It is an Open Source MQTT broker written in Python that works on asyncio, introduced in Python 3.4.
- EMQTT. Erlan MQTT broker is Open Source, developed in Erlang/OTP, and is designed for applications with high scalability requirements.
- RabbitMQ. It is a popular Open Source AMQP messaging broker, which also allows the use of the MQTT protocol through an adapter.
- HiveMQ CE. The Community version of the popular HiveMQ is an Open Source broker based on Java.
- ActiveMQ. It is an Open Source JMS (Java Message Script) messaging broker developed by Apache, which also supports the MQTT protocol.
- Moquette. An Open Source MQTT broker written in Java developed by Eclipse, which stands out for its lightweightness.
- MQTTnet. An Open Source broker for .NET.
These are just a few examples of the most well-known brokers, but of course, there are many more (Mystique, Awesome MQTT, SurgeMQ, VerneMQ). As you can see, there is a whole ecosystem, with a broker for each language and each project.
In the upcoming blog entries, we will take a closer look at some of them (Mosquitto, Aedes, and RabbitMQ mainly). And you, do you have any of your favorite MQTT brokers in the list?