Wie mache ich PAHO-MQTT Loop Timeout?Python

Python-Programme
Guest
 Wie mache ich PAHO-MQTT Loop Timeout?

Post by Guest »

Verwenden von Python PAHO-MQTT, versuche ich, genau 1 Nachricht von einem Thema zu erhalten und dann beenden. Wenn in 5 Sekunden keine Nachrichten empfangen werden, möchte ich Zeitüberschreitungen und beenden. Das Problem, das ich habe, ist, dass dieser Code immer 5 Sekunden wartet, auch wenn die Nachricht früher empfangen wurde. Wenn ich die Sleep () -Zeile entferne, erhält sie überhaupt keine Nachricht.

Code: Select all

import paho.mqtt.client as mqtt
import logging
import time

def on_message(client, userdata, message):
logging.info(f"Received message: {message.payload}")
client.loop_stop()

logging.basicConfig(level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(message)s")

mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
mqttc.enable_logger()
mqttc.on_message = on_message

mqttc.connect("mqtt.eclipseprojects.io")
mqttc.subscribe("#")
mqttc.loop_start()

time.sleep(5)

logging.info('Complete!')
< /code>
Ausgabe: < /p>
2025-01-28 01:39:33,511 [DEBUG] Sending CONNECT (u0, p0, wr0, wq0, wf0, c1, k60) client_id=b''
2025-01-28 01:39:33,511 [DEBUG] Sending SUBSCRIBE (d0, m1) [(b'#', 0)]
2025-01-28 01:39:33,632 [DEBUG] Received CONNACK (0, 0)
2025-01-28 01:39:33,634 [DEBUG] Received SUBACK
2025-01-28 01:39:33,634 [DEBUG] Received PUBLISH (d0, q0, r1, m0), 'AhoyDTU0600-Streusser/version', ...  (6 bytes)
2025-01-28 01:39:33,634 [INFO] Received message: b'0.8.83'
2025-01-28 01:39:38,517 [INFO] Complete!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post