paho mqtt回调python中的不同类模块

问题描述 投票:-1回答:1

我在另一个python模块中定义了我的回调函数。如何将另一个模块中定义的回调附加到paho.mqtt客户端回调?对于。例如,我有一个database.py,我在其中执行所有数据库操作,例如连接到数据库并将消息存储在数据库和mqttbroker.py模块中,我创建一个mqtt.client()实例并连接到代理并订阅主题并定义一些回调,如on_connect和on_disconnect。现在对于on_message mqtt回调,我在database.py模块中创建了回调函数。如何附加此回调?我有main.py(我的客户端)导入database.py和mqttbroker.py模块。

python callback mqtt paho
1个回答
0
投票

定义接口并在客户端模块中调用该接口,并将数据库模块中定义的回调附加到此被调用的接口。

#mqttbroker.py
def onMessage(self, callback):
        self.client.on_message = callback
        self.client.loop_forever()

#database.py
def on_message(self,client,userdata, msg)
    #store messsages in db

#main.py
import mqqtbroker
import database

client = mqqtbroker()
client.connect(host, port, 60)
client.onMessage(database.on_message)
© www.soinside.com 2019 - 2024. All rights reserved.