The Paho [[MQTT]] library in [[Python language]] implements versions 5.0, 3.1.1, and 3.1 of the [[MQTT]] protocol.
This code provides a client class that allows applications to connect to an [[MQTT]] broker to publish messages and subscribe to topics and receive published messages. It also provides some helper functions to make publishing single messages to an [[MQTT]] server very simple.
To install the library, use the `pip install paho-mqtt` command.
**:: Reference ::** [paho-mqtt PyPI](https://pypi.org/project/paho-mqtt/#installation)
# Simple Code
A simple code for implementing an [[MQTT]] client in [[Python language]] is presented below.
```python
import paho.mqtt.client as mqtt
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
client.subscribe("$SYS/#")
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("mqtt.eclipseprojects.io", 1883, 60)
# Blocking calls that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
client.loop_forever()
```
**:: Reference ::** [paho-mqtt · PyPI](https://pypi.org/project/paho-mqtt/#installation)