Я пытаюсь заставить мой скрипт MQTT Paho Python оставаться на связи (и снова подключаться, когда он отключается). К сожалению, я не уверен, как это сделать.MQTT Paho Python надежное повторное подключение
Сказанное говорит, что машина подключена через WiFi, так что в случае выхода сигнала или выталкивания USB-ключа я не хочу, чтобы код выкарабкался на меня, поэтому я пытаюсь охватить все исключения/ошибка.
Вот кусок кода, который я пытаюсь работать с:
mqttc = mqtt.Client(machine_id, clean_session=False)
mqttc.username_pw_set(machine_id, mqtt_pwd)
mqttc.connect(mqtt_host, mqtt_port)
mqttc.subscribe(machine_id, qos=1)
def on_disconnect(client, userdata, rc):
if rc != 0:
print "Unexpected MQTT disconnection. Attempting to reconnect."
try:
mqttc.reconnect()
except socket.error:
??????
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.on_disconnect = on_disconnect
mqttc.loop_forever()
Я не был в состоянии получить гораздо дальше, потому что я не знаю, как я могу получить его снова подключить? Если он не сможет повторно подключиться в первый раз, я не могу получить правильный цикл повторного подключения.
Любые советы были бы очень полезными!
Спасибо!
'loop_forever()' не запускает поток, это неверно. Однако он блокирует, как вы говорите. – ralight
Спасибо @ralight. Вы написали клиента. Дальнейшие исправления, если таковые имеются, приветствуются – Kiran