【发布时间】:2020-01-02 22:54:05
【问题描述】:
我有一个通过 python 连接的 mqtt 代理。
我想检查我是否能够连接到我的代理并在连接成功时触发邮件。
我打算使用全局变量connected,如果在尝试连接后这是错误的,我会触发警报。
我的代码:
import paho.mqtt.client as mqtt
import time
broker_address="ip"
port = "port"
global connected
def mqttConnection():
connected = False
print(connected)
client = mqtt.Client("BrokerCheck",clean_session=True) #create new instance
client.on_connect = on_connect
print('Connecting to broker')
client.connect(broker_address, port=port) #connect to broker
def on_connect(client, userdata, flags, rc):
if rc==0:
print("connected OK Returned code=",rc)
connected = True
else:
print("Bad connection Returned code=",rc)
if __name__ == '__main__':
mqttConnection()
time.sleep(60)
if connected:
pass
else:
#trigger an alarm
但我的全局变量已连接有问题。我是否以正确的方式使用它?
【问题讨论】:
-
对
connected的赋值会创建一个局部变量,它会在mqttConnection定义的范围内隐藏同名的全局变量。
标签: python python-3.x mqtt paho messagebroker