这是我在 MQTT 类中编写的on_message回调,我试图返回收到的 PUBLISH 消息:
def message(self):
def on_message(client, userdata, msg):
Message = str(msg.payload)
print("[Receiving msg] Topic:" +msg.topic+" / Message: "+Message)
return Message
return on_message
但是,一旦调用message
:print(occupancy_sensor.message())
这是输出:
<function Mqtt.message.<locals>.on_message at 0x0000006BE71CAEA0>
消息不会以字符串形式返回
MQTT 客户端回调不返回任何内容,它们是从客户端的网络线程调用的,而不是从您的代码调用的,因此即使它们确实返回了一些东西,也不会发送到任何您可以获得它的地方。
在这种情况下,您可以向message
对象添加一个变量,您可以在回调中从中更新该变量。