import paho.mqtt.client as mqtt # --- Configuración del Broker --- BROKER_ADDRESS = "test.mosquitto.org" BROKER_PORT = 1883 # Puerto estándar para MQTT sin cifrado (Non-TLS) TOPIC = "/ProtcolosIoT" QOS = 1 # Calidad de Servicio (Quality of Service): 0, 1 o 2 # --- Mensaje a Publicar --- PAYLOAD = "Publicando mensajes de prueba al broker mosquitto para aprender algo sobre MQTT" def on_connect(client, userdata, flags, rc): """Función que se llama cuando el cliente se conecta al broker.""" if rc == 0: print("Conexión exitosa al broker.") # La publicación se realiza una vez que la conexión es exitosa result = client.publish(TOPIC, PAYLOAD, qos=QOS, retain=False) # result.rc es 0 si la publicación fue exitosa if result.rc == mqtt.MQTT_ERR_SUCCESS: print(f"[PUBLICADO] Tópico: {TOPIC}") print(f"[MENSAJE]: {PAYLOAD}") print(f"Desconectando...") client.disconnect() # Desconectarse después de publicar else: print(f"Error al intentar publicar. Código: {result.rc}") else: print(f"Error de conexión. Código: {rc}") # Crear una instancia del cliente client = mqtt.Client(client_id="PythonPublisherClient") # Asignar la función de conexión client.on_connect = on_connect # Conectar al broker (esto es asíncrono) try: client.connect(BROKER_ADDRESS, BROKER_PORT, 60) # Iniciar el bucle de red para manejar la conexión y la publicación # Este bucle se detiene cuando se llama a client.disconnect() client.loop_forever() except Exception as e: print(f"No se pudo conectar al broker: {e}")