La boucle de gestion des messages

La programmation MQTT qui consiste à associer des actions à la réception d'un message via la création de fonctions callback utilise un modèle de programmation événementielle. Dans ce modèle, on doit intégrer une boucle, de gestion de messages, qui doit en continu recevoir les messages, les filtrer et enfin appeler la fonction callback associée. La bibliothèque paho-mqtt offre deux implémentations de cette boucle :

# -*- coding:Utf-8 -*-
import paho.mqtt.client as mqtt
import time

def on_connect(client,userdata,flags,result):
	try:
		if (result==0):
			client.subscribe("/junia/#",2)
		else:
			print("erreur de connexion")
			quit(0)
	except Exception as e: 
		print(e)
		quit(0)

def on_message(client,userdata,message):
	try:
		print("Received message '" + message.payload.decode("utf8")
		+ "' on topic '" + message.topic
		+ "' with QoS " + str(message.qos))
	except Exception as e: 
		print(e)

mqttc = mqtt.Client()
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.connect("test.mosquitto.org", 1883, 60)

mqttc.loop_start()
while True:
	# lecture des capteurs et envoies de messages
	time.sleep(10)