Table of Contents
- MQTT CLI for Windows, MacOS, Debian/Ubuntu
- HiveMQ MQTT Client
- MQTT.fx for Mac OSX, Windows and Linux and MQTT.fx Extras
- Mqtt-spy for Windows, Linux, Mac, Mqtt-spy-daemon, and Mqtt-spy-advanced
- MQTTInspector for Mac OSX, Windows and Linux
- MyMQTT for Android
- HiveMQ Websocket Client
- MQTTlens for Windows, Linux & MacOSX
- MQTT Box for Windows, Linux & MacOSX
- MQTT Client Chrome App for Windows, Linux & MacOSX
- MacOSX MQTT.app
MQTT CLI for Windows, MacOS, Debian/Ubuntu
The MQTT CLI is an open-source Java MQTT client tool that enables you to interact quickly and easily with any MQTT Broker in various ways. The CLI gives you a single compact tool for the most important client operations (Publish and Subscribe). The CLI tool also provides an interactive and comfortable SHELL mode that enables you to work with multiple MQTT clients in parallel and supports connection handling. The MQTT CLI supports all MQTT features for MQTT version 5 & MQTT version 3.1.1. The tool uses the HiveMQ MQTT client library, which is a fast, low-overhead, high-throughput, and modern MQTT library written in Java. The MQTT CLI comes in various binary packages that can be downloaded from the documentation homepage on GitHub.
Learn more about MQTT CLI for Windows, MacOS, Debian/Ubuntu
HiveMQ MQTT Client
The HiveMQ MQTT Client is a Java library that is available under the Apache license on GitHub. It is designed for high-performance so it is very useful for server-side MQTT clients that integrate enterprise systems. This MQTT client is compatible with MQTT 3.1.1 and MQTT 5. It provides a fast, low-overhead, high-throughput and modern MQTT library for Java by building on modern frameworks, like Netty, for handling networking and RxJava for handling the asynchronous streaming of messages. It was created with backend applications in mind, but can be used in any Java-based project. The library provides three distinct flavours of API: blocking, asynchronous and reactive. This means you can choose a programming style which best meets your use-case. For example, for a very simple application which just starts up, sends some messages in order and shuts down again, the blocking API fits very well. For backend applications the asynchronous API will fit for most scenarios. If you want full access to all of the features the library provides, then the reactive API is the way to go. Download if for free from the HiveMQ GitHub repo.
MQTT.fx for Mac OSX, Windows and Linux and MQTT.fx Extras
The MQTT.fx has been around since 2014 and built its fan base in our team. It comes with the portability of the Java VM and an impressive feature set. MQTT.fx is implemented with JavaFX. Due to the native packaging available for JavaFX, there are binaries for Windows, MacOSX and Linux, which makes the installation a breeze. Besides, standard publish/subscribe functionality, it provides support for $SYS topics and connection profiles for connecting to different brokers. The $SYS topic support helps to inspect the internals of the broker from time to time. The connection profiles allow the configuration of connection options, such as client ID, SSL/TLS, username/password, and Last Will and Testament. This MQTT client also supports scripting. This makes the simulation of different sensors, etc. easy. Additionally, it is possible to view publisher and subscriber simultaneously by detaching one of the tabs.
Learn more about MQTT.fx for Mac OSX, Windows and Linux
mqtt-spy for Windows, Linux, Mac
The mqtt-spy has been around since 2014 and as of early 2016 is part of Eclipse Paho and Eclipse IoT. It ships as a JAR file and runs on top of Java 8 and JavaFX. The mqtt-spy client displays the basic MQTT publish/subscribe mechanism. It makes it easy to publish and subscribe at the same time. There are different tabs for connections to several brokers. The different areas of the pub/sub window (publish, new subscription, subscription & messages) can be closed down to make room for the currently used ones. Its search functionality allows to you to find and filter the often heavy load of MQTT messages running through such a tool. Additionally, the mqtt-spy logs every published and received message in the standard output and into a file. So it is easy to open the file in any text editor and make deeper analysis of the messages, which is often necessary when dealing with many MQTT messages. It also comes with advanced features like scripting, filtering & searching, decoding & formatting received messages and graphing/charts.
Learn more about mqtt-spy
MQTTInspector for Mac OSX, Windows and Linux
The MQTTInspector is a great tool for any iOS device. It is especially suited for power users. It is possible to create and store connection options, similar to most of the other tools. It allows to pre-configure publishes and subscriptions as templates. After connecting to the broker, a simple click activates a subscription or triggers a publish. Therefore it is good to know beforehand to which topics MQTTInspector should publish or subscribe to. It is possible to change this during an open connection. As a power user tool, it allows you to switch between a simple message feed, a view grouped by topic and a low level view.The low level mode shows low-level MQTT command messages, some basic data, and its representation in hex. It also allows you to filter the message by their topic, attributes or payload. This is very handy when a lot of messages arrive and only some of them are of interest.
Learn more about MQTT Inspector
MyMQTT for Android
The Android App MyMQTT can be installed via the Google Play Store. It is a useful app that has basic publish and subscribe capabilities. A functionality which differentiates this app from others is its ability to store messages on the phone. These are shown in the menu under “Stored Messages.”
HiveMQ WebSocket Client
MQTTlens for Windows, Linux & MacOSX
Learn more about MQTTLens
MQTTBox for Windows, Linux & MacOSX
MQTTBox is a helper program to develop and load test MQTT based clients, brokers, devices, cloud and apps. Every aspect of MQTTBox is specifically designed to maximize development and testing productivity. Together, with MQTT clients and load testing tools integrated, its powerful enough to supercharge your MQTT workflow. MQTTBox is available as a Chrome App and as a Web app. You can find the Github code here for customization.
Learn more about MQTTBox
MQTT Client Chrome App for Windows, Linux & MacOSX
MQTT Client is a Chrome application, which is free and open source. It supports Windows, Linux & MacOSX operating systems, and helps debug MQTT messages.
Learn more about MQTT Client Chrome App
If you are using MacOSX as your development operating system, you should definitely give MQTT.app by 2lemetry a try. It’s very handy for publishing and subscribing and displays all subscriptions in one stream. If you don’t want to see all topics at once, you can hide certain ones from the stream with a click (topic color is now gray). When you click on the topic once again, it is displayed in the stream again. The assignment of various colors to different topic subscriptions makes it easy to distinguish the received messages by topic. The tool has the possibility to connect to a MQTT broker with username and password, which is helpful if you want to test the authentication of a broker. For example, HiveMQ with the File Authentication Plugin.
mosquitto_pub and mosquitto_sub are useful command line clients. These clients can be used to publish messages or subscribe to topics. They are distributed with mosquitto and are available for most operating systems, including Windows, Linux and MacOSX. You can download the clients here. With mosquitto_pub, you can publish files. SSL is supported on both of them. One of the drawbacks of mosquitto_sub is that it cannot handle massive message throughput and is not suitable for stress test scenarios. mosquitto_pub and mosquitto_sub are very handy utilities and should be in the toolbox of everyone interested in MQTT.
MyMQTT for Android is a useful app which can publish and subscribe directly from your Android phone or Android tablet. The app is very useful for sending or receiving MQTT messages “on the go”. If you want to test your locally installed HiveMQ MQTT broker, your Android device needs to be in the same network as your broker, because MyMQTT does not run locally on your computer. However, it is still very useful in testing, if you want to try whether your broker is reachable through the internet, when configuring port forwarding or similar approaches. Generally it is interesting for everyone who wants to play around with MQTT and owns an Android device.