paho.mqtt.python
paho.mqtt.python copied to clipboard
How to call loop_forever after loop_stop?
Hello. I want call loop_forever after I called loop_stop, the reason for this is that I need client subscribe topics done. Then I can do my stuff.
So I need using loop_start to start a subscribe, then I will close this loop, but after that, I found loop_forever nolonger works why?
def _connect(self):
self.client = mqtt_client.Client(self.client_id)
self.client.username_pw_set(self.user_acc, self.user_password)
self.client.on_connect = self.on_connect
self.client.on_message = self.on_message
self.client.connect(MQTT_URL, PORT)
logger.info('loop start...')
self.client.loop_start()
time.sleep(4)
while True:
if not self.connected or not self.client_ready:
logger.info('still not client ready? wait more 1 seconds.')
time.sleep(1)
continue
else:
logger.info('Seems connected and client_ready, close loop thread')
self.client.loop_stop()
break
# outside code
client.loop_forever()
# this will exit program directly rather than block and run forever.