Understanding the requirements
In the previous chapters, we learned how MQTT works in detail. We understood how to establish a connection between an MQTT client and an MQTT server. We learned what happened when we subscribed to topic filters and when a publisher sent messages to specific topics. We installed and secured a Mosquitto server. Then, we controlled a drone with Python.
Now, we will use Java as our main programming language to generate MQTT clients that will act as publishers and subscribers. We will connect a Java MQTT client to the MQTT server and we will process simple commands to control sensors with MQTT messages.We will use TLS encryption and TLS authentication because we don't want any MQTT client to be able to send commands to sensors wired to IoT boards. We want our Java code to run on many platforms because we will use the same code base to control sensors that use the following IoT boards:
Raspberry Pi 3
Raspberry Pi 2 Model B
Intel Edison
Intel Galileo Gen 2
Intel Joule 570x...