Often, the first steps in any project seem to be the hardest. So it is with ThingStudio. Often people get stuck at the step, which with ThingStudio is getting access to an MQTT broker. This post lists some of the many different ways to get an MQTT broker for use with ThingStudio.
ThingStudio has only one real requirement for working with brokers, and that is that they should support websocket connected clients. All the solutions listed here pass that test.
MQTT solutions fall into two categories, using a broker that is hosted on the Internet, or running your own broker on either an internal network or the Internet. We’ll deal with the second option first.
Self Hosted MQTT broker software
Mosquitto is one of the most popular brokers and has one of the longest pedigrees. It is included with almost all Linux distros, but unfortunately at the time of writing, few of them have upgraded to the 1.4 version, which is the first Mosquitto release to support websockets. Fortunately, though, Mosquitto is pretty straightforward to compile and install. The Raspberry Pi makes an excellent Mosquitto platform, and because it is such a common request, you’ll find a post on this blog on how to install Mosquitto and nodered on a Raspberry Pi here.
If you are coming from the web development world, and have node.js experience, you may want to checkout Mosca, written by the brilliant Matteo Collina, mosca is very simple to get going if you have an existing node setup.
VernMQ is a new kid on the block. Written in Erlang, it is a clusterable, massively scaleable broker intended for use by the most demanding applications. However, we’ve found it pretty easy to setup and use on ordinary Linux boxes.
emqttd is a fully MQTT 3.1/3.1.1 compliant broker written in Erlang/OTP. This is also an enterprise level system, with support for MySQL and LDAP authentication.
HiveMQ is licensed software, but has a limited free license, so we are listing it here. It also has a public instance listed below. HiveMQ is java based, so if that floats your boat HiveMQ is for you.
For Macintosh folks, we’ve released a very simple MQTT broker which will run straight off the Mac desktop, it also has an MQTT to serial bridge so you can use serial only devices, like the classic Arduino, with ThingStudio. The blog post about this is here. This implementation uses Matteo Collina’s Mosca, and nodewebkit to make the UI. It should be cross platform, especially to Linuxes, the software is available on github here.
These are brokers that we have actually tested with ThingStudio, and verified their websocket support, if you author broker software and want to be listed here, please contact us and we’ll checkout your broker.
Hosted MQTT brokers
On the mqtt.org site, there is a a web page listing publicly accessible MQTT brokers. You can find that here. Please note: DO NOT use the standard MQTT port (1883) for connections to ThingStudio, this is the standard TCP/IP port for MQTT and won’t work. There is no standard port for websockets connections, you will need to check on the individual broker for the port.
Bluemix is IBM’s very extensive collection of cloud based services, including extensive MQTT support.
Bluemix requires a credit card to keep an account going, but there is a significant free tier of usage before you will be charged. You can find out more about Bluemix and MQTT here.
As mentioned above, you can find the HiveMQ public instance here
There are probably many other hosted solutions we have not discovered, if you want us to confirm compatibility with your hosted service and listed here, please contact us.