Getting started with HiveMQ - Overview of MQTT client tools
Written by The HiveMQ Team
Published: June 16, 2013
A free version of the HiveMQ enterprise MQTT broker was released recently and to get you started quickly with evaluation and testings for your private MQTT project, we want to give you an overview of available MQTT tools. Of course this list makes no claim of completeness. For an exhaustive list please visit the MQTT.org software list.
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). Another click on the topic and it is displayed in the stream again. Also a very handy feature is the assignment of various colors to different topic subscriptions, which 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 can be helpful if you want to test the authentication of a broker, for example HiveMQ with the File Authentication Plugin.
Simplemessage is a tool which is very useful when you want to publish many messages at once, e.g. for stress tests. It is based on the Eclipse Paho C client and runs on MacOSX. The tools sole purpose is to publish messages, so you most likely want to use this tool together with a subscriber tool. However Simplemessage is an ideal fit for generating MQTT message pressure for your broker under test and to analyze its behavior in high throughput scenarios. One thing you should be aware of is, that none of the ready-to-use subscriber tools shown here can handle that massive amount of messages. A good alternative for implementing a subscriber client which can handle the message throughput is to to use the Eclipse Paho or Fusesource MQTT client library to implement a high-performance subscriber client on your own.
mosquitto_pub and mosquitto_sub are useful command line clients, which 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 and can be downloaded here. You can also publish files with mosquitto_pub and SSL is supported on both of them. mosquitto_sub is rock stable and has a huge user base. The only small drawback is, that mosquitto_sub cannot handle massive message throughput and is not that suitable for stress test scenarios. For development purposes however, it is arguably one of the best tools out there. mosquitto_pub and mosquitto_sub are very handy utilities and should be in the toolbox of everyone interested in MQTT. Big shout-out to Roger Light for creating these useful utilities.
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.
MyMQTT Android App. Picture from Play Store
Although the IA92 MQTT library from IBM is deprecated and it is recommended to switch to the Eclipse Paho MQTT library, IA92 comes with a very handy utility for publishing and subscribing. It can be downloaded here and is based on Swing, which makes it work on every system which has a JVM installed. It is not the most beautiful GUI you have ever seen in your life, but the tool is completely functional and has a rich feature set, including sending files. If you are using it in testing and often restart your broker, this tool behaves slightly different to the others, because it has an automatic reconnect functionality. So you should be aware that if you restart your broker and the tool is running, it is trying to reconnect in a certain configurable interval. Although officially deprecated, we recommend to try it yourself and add it to your MQTT toolbox as a GUI alternative to mosquitto_pub and mosquitto_sub.
IBM WMQTT Utility
As we have seen there are many useful MQTT utilities out there for testing your local MQTT broker and for your MQTT projects. All of them are worth taking a look at and in fact, we use all of them frequently. If you think we forgot to list a MQTT client tool, please tell us in the comments :)