用 Python 模拟一个 MQTT 设备

1 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值