Mqtt作为消息中间件在设备通讯方面应用广泛,对应Python库名为paho-mqtt;
import json
import time
import paho.mqtt.client as mqtt
def on_connect(client, obj, flags, rc):
if rc == 0:
print("connect mqtt server Success")
client.subscribe('topic_test_back', 0)
def on_message(client, obj, msg):
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
print(f"topic: {msg.topic}, message: {msg.payload}")
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set("admin","public")
client.connect('127.0.0.1', 1886, 600)
client.loop_start()
client.subscribe('topic_test_back', 0)
while True:
msg = {'name':'mqtt','payload':'love you'}
client.publish('topic_test', payload=json.dumps(msg).encode(), qos=0)
time.sleep(5)
上段为Mqtt发布端,下段为Mqtt订阅端,loop_forever()会进入持续接收状态;
import json
import datetime
import paho.mqtt.client as mqtt
def on_connect(client, obj, flags, rc):
if rc == 0:
print("connect mqtt server Success")
client.subscribe('topic_test', qos=0)
def on_message(client, obj, msg):
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
print(f"topic: {msg.topic}, message: {msg.payload}")
msgdata = json.loads(msg.payload)
msgdata['payload'] = 'love you too'
msgdata = json.dumps(msgdata)
client.publish('topic_test_back', payload=msgdata.encode(), qos=0)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set("admin","public")
client.connect('127.0.0.1', 1886, 600)
client.subscribe('topic_test', qos=0)
client.loop_forever()