paho.mqtt.python icon indicating copy to clipboard operation
paho.mqtt.python copied to clipboard

How to call loop_forever after loop_stop?

Open lucasjinreal opened this issue 3 years ago • 0 comments

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.

lucasjinreal avatar Nov 28 '21 06:11 lucasjinreal