Mosquitto is a lightweight MQTT broker that manages message exchange between devices using the MQTT protocol.
Click to reveal answer
beginner
Which command installs Mosquitto on a Raspberry Pi running Raspberry Pi OS?
Use sudo apt update followed by sudo apt install mosquitto mosquitto-clients to install Mosquitto and its clients.
Click to reveal answer
beginner
How do you start the Mosquitto service and enable it to run on boot?
Run sudo systemctl start mosquitto to start and sudo systemctl enable mosquitto to enable it at boot.
Click to reveal answer
beginner
What is the default port Mosquitto listens on for MQTT connections?
Mosquitto listens on port 1883 by default for MQTT client connections.
Click to reveal answer
beginner
How can you test if Mosquitto broker is working on your Raspberry Pi?
Use mosquitto_sub -h localhost -t test/topic in one terminal to subscribe, and mosquitto_pub -h localhost -t test/topic -m "Hello" in another to publish a message. If the subscriber shows the message, the broker works.
Click to reveal answer
Which command installs Mosquitto on Raspberry Pi?
Asudo install mosquitto
Bsudo apt-get remove mosquitto
Csudo apt install mosquitto mosquitto-clients
Dsudo systemctl start mosquitto
✗ Incorrect
The correct command to install Mosquitto and its clients is 'sudo apt install mosquitto mosquitto-clients'.
What port does Mosquitto use by default for MQTT?
A8080
B1883
C443
D22
✗ Incorrect
Mosquitto listens on port 1883 by default for MQTT connections.
How do you enable Mosquitto to start automatically on boot?
Asudo mosquitto start
Bsudo systemctl disable mosquitto
Csudo apt install mosquitto
Dsudo systemctl enable mosquitto
✗ Incorrect
Use 'sudo systemctl enable mosquitto' to enable Mosquitto service at boot.
Which command subscribes to a topic 'test/topic' on local Mosquitto broker?
Amosquitto_sub -h localhost -t test/topic
Bmosquitto_pub -h localhost -t test/topic
Cmosquitto_start -t test/topic
Dmosquitto_listen -t test/topic
✗ Incorrect
The 'mosquitto_sub' command subscribes to a topic; here it listens to 'test/topic'.
What is the role of Mosquitto in MQTT communication?
AIt is a broker managing message delivery between clients.
BIt is a database for storing MQTT messages.
CIt encrypts MQTT messages.
DIt acts as a client sending messages.
✗ Incorrect
Mosquitto acts as a broker that manages message delivery between MQTT clients.
Explain the steps to install and start Mosquitto broker on a Raspberry Pi.
Think about commands using apt and systemctl.
You got /4 concepts.
Describe how to test if your Mosquitto broker is working correctly on your Raspberry Pi.
Use two terminal windows for testing publish and subscribe.
You got /3 concepts.
Practice
(1/5)
1. What is the primary role of the Mosquitto MQTT broker on a Raspberry Pi?
easy
A. To receive and forward messages between devices
B. To act as a web server for hosting websites
C. To store large files for backup
D. To compile Python programs
Solution
Step 1: Understand MQTT broker function
The MQTT broker acts as a middleman that receives messages from one device and forwards them to others subscribed to the same topic.
Step 2: Compare with other options
The other options describe unrelated functions like web hosting, file storage, and compiling, which are not roles of Mosquitto.
Final Answer:
To receive and forward messages between devices -> Option A
Quick Check:
MQTT broker = message forwarding [OK]
Hint: Broker forwards messages between devices [OK]
Common Mistakes:
Confusing broker with web server
Thinking Mosquitto stores files
Assuming it compiles code
2. Which command correctly installs Mosquitto on a Raspberry Pi running Raspberry Pi OS?
On Raspberry Pi OS, the correct command to install a package is 'sudo apt-get install package-name'. Here, the package is mosquitto.
Step 2: Check each option's syntax
Only sudo apt-get install mosquitto follows the correct syntax. The other options have incorrect word order or missing keywords.
Final Answer:
sudo apt-get install mosquitto -> Option D
Quick Check:
Install command = sudo apt-get install [OK]
Hint: Use 'sudo apt-get install mosquitto' exactly [OK]
Common Mistakes:
Mixing command word order
Omitting 'sudo' or 'install'
Using incorrect package manager commands
3. After installing Mosquitto, you run the command mosquitto_sub -h localhost -t test/topic in one terminal and mosquitto_pub -h localhost -t test/topic -m "Hello" in another. What will appear in the subscriber terminal?
medium
A. Error: Connection refused
B. Hello
C. mosquitto_sub
D. test/topic
Solution
Step 1: Understand subscriber and publisher commands
The subscriber listens on topic 'test/topic' on localhost. The publisher sends message 'Hello' to the same topic.
Step 2: Predict subscriber output
The subscriber will receive and display the message 'Hello' published to 'test/topic'. No error occurs if Mosquitto is running.
Final Answer:
Hello -> Option B
Quick Check:
Subscriber shows published message [OK]
Hint: Subscriber shows message sent to its topic [OK]
Common Mistakes:
Expecting topic name instead of message
Confusing command names with output
Assuming connection error without checking broker status
4. You try to start Mosquitto with sudo systemctl start mosquitto but get an error saying the service is not found. What is the likely cause?
medium
A. Mosquitto is not installed or service not enabled
B. You need to run the command without sudo
C. The Raspberry Pi is out of storage space
D. The MQTT topic name is incorrect
Solution
Step 1: Analyze the error message
The error 'service not found' means the system does not recognize the mosquitto service, usually because it is not installed or the service is not enabled.
Step 2: Evaluate other options
Running without sudo won't help as service commands require sudo. Storage space or topic name do not affect service recognition.
Final Answer:
Mosquitto is not installed or service not enabled -> Option A
Quick Check:
Service error = missing install or enable [OK]
Hint: Check if Mosquitto is installed and service enabled [OK]
Common Mistakes:
Trying without sudo
Blaming storage space
Confusing service error with topic issues
5. You want to allow remote devices to connect to your Mosquitto broker on Raspberry Pi. Which configuration change is necessary?
hard
A. Install a web server alongside Mosquitto
B. Change the MQTT topic to a public name
C. Edit /etc/mosquitto/mosquitto.conf to allow connections on all interfaces
D. Disable the Raspberry Pi firewall completely
Solution
Step 1: Identify how Mosquitto listens for connections
By default, Mosquitto listens only on localhost (127.0.0.1). To allow remote devices, you must configure it to listen on all network interfaces.
Step 2: Understand configuration changes
This is done by editing /etc/mosquitto/mosquitto.conf to set 'bind_address' or comment it out to listen on all interfaces. Changing topic names or installing web servers does not affect network access. Disabling firewall completely is unsafe and unnecessary if configured properly.
Final Answer:
Edit /etc/mosquitto/mosquitto.conf to allow connections on all interfaces -> Option C