Почему MQTT не подключается к серверу?

Моя цель - добиться публикации MQTT сообщения по сигналу postsave, отправленному моим моделям DJango. Я зарегистрировал обратные вызовы on_connect, on disconnect, on_publish для проверки выполнения соответствующего процесса. Однако ни один из зарегистрированных мною обратных вызовов не работает. Вот мой код сигнала post_save. Может ли кто-нибудь подсказать мне, где я делаю ошибку?

import paho.mqtt.client as mqtt


def on_connect(client, userdata, flags, rc):
    print("connecting")
    print("client:"+str(client))
    print("userdata:"+str(userdata))
    print("flags:"+str(flags))
    print("result:"+str(rc))
    global flag_connected
    flag_connected=1


def on_publish(client, userdata, mid):
    print("message published")


def on_connect_fail(client, userdata, flags, rc):
    print("failed to connect")
    print("client:"+str(client))
    print("userdata:"+str(userdata))
    print("flags:"+str(flags))
    print("result:"+str(rc))
    global flag_connected
    flag_connected=0


def on_disconnect(client, userdata, rc):
   global flag_connected
   flag_connected = 0



  

def notify_windowsApp(sender,instance, **kwargs):
    

    new_truck_registered={
        "identity":str(instance.truck_identity),
        "doorName":str(instance.registered_door.door_name),
        "doorNumber":str(instance.registered_door.door_number),
        "entryTag":str(instance.entry_tag),
       
        #"depatureTag":str(instance.departure_tag), 
        "entrytime":instance.entry_time.strftime('%Y-%m-%d::%H-%M'),

    }



    



    sendToClient(new_truck_registered)


def sendToClient(payloadTobeSent):
    

    client=mqtt.Client(client_id="django_post_save_signal",
    clean_session=True, )
    mqttBroker="broker.hivemq.com"
    client.on_connect=on_connect
    client.on_publish=on_publish
    client.on_connect_fail=on_connect_fail
    client.on_disconnect=on_disconnect
    client.connect(mqttBroker)
    client.publish('baydoor/truckentrance',payload=str(payloadTobeSent),qos=1, retain=True)

Во-первых, в on_connect_faildocs нет обратного вызова , откуда вы это взяли?

Более того, вы не запустили клиентский сетевой цикл, поэтому ни один из обратных вызовов никогда не будет вызван.

Вернуться на верх