У меня есть функция publish_data
, основной задачей которой является создание клиента, подписка на тему ack
и публикация данных на устройстве device1
. Функция on_message
ожидает получения сообщения от device1
по теме ack
в течение 5 секунд. Как я могу вернуть False
для функции publish_data
, если сообщение не было получено функцией on_message
в течение 5 секунд, и True
, если сообщение получено. Есть ли лучший способ реализовать то же самое?
def publish_data(target_id, data):
def on_message(client, userdata, msg):
print "message recieved"
def send_data(target_id, data):
client = paho.Client()
client.connect("localhost", 1883)
client.loop_start()
client.subscribe("ack", qos=0)
client.on_message = on_message
client.publish("device1", payload=data, qos=0)
send_data(target_id, data)
return_value = mqtt_function("device1",{"hello":"world"})
if return_value:
print "yureka"
else:
print "try again"