【问题标题】:Processing a received message using paho mqtt in python在 python 中使用 paho mqtt 处理收到的消息
【发布时间】:2017-03-13 05:07:07
【问题描述】:
import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("/leds/pi")

def on_message(client, userdata, msg):
    if msg.topic == '/leds/pi':
        print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("localhost", 1883, 60)
client.loop_start()

我使用此基本代码订阅主题并接收消息。每当收到消息时都会调用 on_message 函数。我需要能够访问函数外部的 msg.payload 并将其存储到变量中。每当收到消息时,都应更新变量中的值。我试图将 msg.payload 存储到函数内的全局变量中并访问它,但是,这给出了一个错误,指出该变量未定义。请帮忙。

【问题讨论】:

  • 编辑问题以显示您使用全局变量的代码,以便我们查看实际失败的原因

标签: python mqtt paho subscribe


【解决方案1】:

我需要能够在函数之外访问 msg.payload 并且 将它存储到一个变量中。

您需要一个全局变量,例如:

myGlobalMessagePayload = ''   #HERE!

def on_message(client, userdata, msg):
    global myGlobalMessagePayload
    if msg.topic == '/leds/pi':
        myGlobalMessagePayload  = msg.payload   #HERE!
        print(msg.topic+" "+str(msg.payload))

【讨论】:

    猜你喜欢
    • 2021-10-15
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多