Skip to main content

Setup Mosquitto MQTT broker in Windows

MQTT (Message Queueing Telemetry Transport) is a Client Server messaging transport protocol. It provides a lightweight method of carrying messages using a publish/subscribe model. The pub/sub model being lighweight makes it suitable for IOT messaging with low power devices, sensors, phones or microcontrollers.

How MQTT works?

MQTT follows publish/subscribe model which is alternative to server-client model where client communicates directly with server. The pub/sub model defines the client which send a message(publisher) to another client which received that message(subscriber). The subscriber and publisher are unaware of the presence of each other. The main part, which we call the Broker, which our both publisher and subscriber are aware of, filters all the coming messages and distributes them respectively.

Now we know what is MQTT and how it works. Let's dive in to set this up on Windows 7/8/10.


This is an open source message broker used for handling lightweight data transfer protocol. Mosquitto implements the MQTT protocol versions 3.1 and 3.1.1.

Setup on Windows:

Step 1: Select mosquitto-1.4.11-win32.exe from for Windows.

Step 2: Now, click the download button on the eclipse download page or select any other mirror of your choice.

Step 3: Save and run the downloaded exe file and Click Next to Continue the installation.

Step 4: Installer now asks you to download two DLLs which are must to get your Mosquitto broker running.

Step 5: Click on the first link to download the Win32 Open SSL Light library. For me, Win32 OpenSSL v1.0.2k Light worked, the updated version threw an error during installation, so make sure which version works well on your system.

Step 6: Now download the pthreadvc2.dll from the installation instruction.

Step 7: Save and run the downloaded Win32 OpenSSL Light file. When installing it will ask you to save the libraries into System library or the bin directory. For simplicity, you can choose System directory and there is no need to copy the libraries to your Mosquitto installation. However, if you select /bin directory then you will need to copy the libraries into your Mosquitto installation folder.

Step 8: We need to copy DLLs to Mosquitto installation directory, for me it's C:/Program Files(x86)/mosquitto.

DLLs needed from OpenSSL-Win32: libeay32.dll, ssleay32.dll
Second DLL downloaded: pthreadVC2.dll
Note: Make sure that these DLLs are either on system path or in Mosquitto installation directory.
Step 9: Now continue the Mosquitto installation and change the installation directory to C:/Program Files(x86)/mosquitto where we have copied the downloaded DLLs.

Step 10: In the next step we are continuing our Mosquitto installation, now installer asks you to install Service, check this and click Next.

Step 10: Now, the installer looks for the installation path, let it remain the same, or change it as per your requirement. Click Next and installation will Finish.

Step 11: If the installation fails, try fresh install. Sometimes the Windows services are not configured automatically, so a fresh install will work.

Now the installation is complete, time to test.
Open CMD and execute the following command:
netstat -an

When TCP LISTENING appears we are good to move ahead to test Mosquitto broker.

Test Mosquitto broker:

Now we will run CMD and navigate to our installation directory C:/Program Files(x86)/mosquitto.

First of all, type mosquitto to start the broker manually.

Write mosquitto -h to open the help list so to start the mosquitto broker in Verbose mode type mosquitto -v and hit enter. Once the broker is started, it's time to create publisher and subscriber.

Open two CMD windows, one is publisher and the other is subscriber.

In first window type:
mosquitto_sub -v -t 'knowshipp/topic' to subscribe the topic 'knowshipp/topic'.

In the second window:
mosquitto_pub -t 'knowshipp/topic' -m 'helloSailor to publish the message on topic 'knowshipp/topic'.

Now look into your subscriber, a message has been received on the subscriber topic.

To subscribe/publish messages using different broker over internet i.e., use the below commands:
Subscriber window: mosquitto_sub -h -t topic
Publisher Window: mosquitto_pub -h -t topic -m "Hello, Sailor!"


In conclusion, we are now able to subscribe/publish MQTT messages using Mosquitto broker on local/internet environment.

That's it for today. Happy IoTing.


Popular posts from this blog

Controlling Servo Motor with BLYNK app over WiFi

Hello Shippers, hope you are having a great time! Today, we are gonna build a simple project of controlling servo motor with BLYNK app over Wifi.
Overview: The slider on the blynk app will send a value to the NodeMCU/ESP8266 and this value will be written on PIN 8 and the servo rotates that much degrees. That's the way we are controlling servo motor. Ahaa!

Things we need:Hardware:Servo SG90NodeMCUMicroUSB cableJumper WiresSoftware:Arduino IDEBLYNK appCircuit:
Connections:D8 pin of NodeMCU connects to Command pin of Servo Motor.3V3 PIN of NodeMCU connects to Power PIN of Servo motor (usually RED one).GND PIN of NodeMCU connects to GND of servo motor (usually BLACK one). Simple connections, huh!
BLYNK app Setup on phone:Create a New Project in BLYNK app.Write Project Name and Select ESP8266 or NodeMCU from dropdown.An AUTH token will be sent to your registered email, note this down.Tap on the screen and add a SLIDER widget on the screen.Tap on the Widget, select Digital PIN 8 and Start…

Time scheduled electric switch controlled with Blynk app

Most of the times when we go out of home for some days, we think of having some device that could switch ON/OFF (let's say) Refrigerator (or any other important appliance)for some hours during the day. Today, we are going to make such time scheduled electric switch which switches ON/OFF at times which we set the in our Blynk app. Woah!

Let's begin!
Things we need:
Hardware:5V relayNodeMCUJumper wiresBreadboard3V3 and 5V power sourceElectrical WiresSoftware:Arduino IDEBLYNK app It's circuit is same as we have created for our Smart Switch. So, if you already have that circuit set up, go ahead with Blynk app set up and Start playing.
Connections:D5 pin of NodeMCU connects to IN1 pin of 5V relay.3V3 of NodeMCU connects to 3V3 powers source and GND to GND.Vcc of relay connects to 5V source and GND to GND.Live wire is connected directly to appliance.Neutral wire from source comes to relay NC pin and another wire goes out from COM pin which is connected to the appliance.Let…