最近入门物联网项目,同过EMQ搭建MQTT服务端,python客户端进行发布和订阅,想将订阅的信息在web前段显示或者存入数据库,但是发现订阅到的信息无法提取,想问问订阅的信息“msg”如何return或者提取出来?订阅代码如下
# python3.6
from encodings import utf_8
from http import client
from multiprocessing.connection import Client
import random
from paho.mqtt import client as mqtt_client
broker = '127.0.0.1'
port = 1883
topic = "/LG210/up"
# generate client ID with pub prefix randomly
client_id = f'python-mqtt-{random.randint(0, 100)}'
# client_id = 'e2845cea-fa96-4ae1-8c50-9dab75781a1c1645090157775'
def connect_mqtt() -> mqtt_client:
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Connected to MQTT Broker!")
else:
print("Failed to connect, return code %d\n", rc)
client = mqtt_client.Client(client_id)
client.on_connect = on_connect
client.connect(broker, port)
return client
def subscribe(client: mqtt_client):
def on_message(client, userdata, msg):
print(f"Received `{[msg.payload]}` from `{msg.topic}` topic")
# return msg
client.subscribe(topic)
client.on_message = on_message
def run():
client = connect_mqtt()
data = subscribe(client)
client.loop_forever()
if __name__ == '__main__':
run()
尝试return,但是如法返回