Recv 部分
import paho.mqtt.client as mqtt
import Send
ControlPath = "home/bedroom/switch1/set"
StatePath = "home/bedroom/switch1"
# 链接时调用
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(ControlPath)
# 当接收到信息时触发
def on_message(client, userdata, msg):
# 发送 MQTT 数据
Send.client.publish(StatePath,str(msg.payload),0)
# 输出接收到的文本
print(msg.topic+" " + ":" + str(msg.payload))
client = mqtt.client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("192.168.0.109", 1883, 60)
client.loop_forever()
Send 部分
import paho.mqtt.client as mqtt
HOST = "192.168.0.109"
PORT = 1883
client = mqtt.Client()
client.connect(HOST, PORT, 60)
client.loop_start()
loop_forever 与 loop_start 的区别在于一个有阻塞性质,而另一个没有。
故可以看到在Send 中对于链接的设置考虑到非阻塞的需求就采用了 loop_start 而非 loop_forever