Не позволяйте публикации() работать в потоке paho.mqtt.client.on_connectPython

Программы на Python
Ответить
Anonymous
 Не позволяйте публикации() работать в потоке paho.mqtt.client.on_connect

Сообщение Anonymous »

Я изо всех сил пытаюсь заставить публикацию работать в потоке on_connect. Публикация, вызванная в основной функции, достигает брокера, но не тех, которые находятся в функции on_connect.
При запуске приведенного ниже кода брокеру отправляется только «129», а не «5555». Видно, что он введён в on_connect() с причиной «ОК».

Код: Выделить всё

import paho.mqtt.client as mqtt
import time

def on_connect(client, userdata, flags, reason_code, prop):
print("On connect")
print(client)

if (reason_code == 0):
print("OK")

while True:
time.sleep(1)
client.publish("CO2Meter/CO2",  5555)
print("client.publish 5555")

def main():
mqttclient = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)

mqttclient.on_connect = on_connect
mqttclient.connect("localhost")

mqttclient.publish("CO2Meter/CO2", 129)
print(mqttclient)

mqttclient.loop_forever()

if __name__ == "__main__":
main()
Попробуйте посмотреть на пример и сделать то же самое, но не сможете заставить его работать. Может ли кто-нибудь указать, чего мне не хватает?


Подробнее здесь: https://stackoverflow.com/questions/798 ... ect-thread
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»