如何解决订阅成功,但是回调函数不显示数据
我编写了代码来发布和订阅主题。该出版物运作良好。订阅也是如此,但我的 on_message 回调函数不显示数据(print(“message.payload”)),尽管我可以在节点红色上看到 protobuf 格式的数据.
import paho.mqtt.client as mqtt
from google.protobuf.struct_pb2 import Struct
import json
import pub_message_pb2 as pub_message
from google.protobuf.json_format import Parse
MQTT_HOST = "xxxxxxxxxxx"
CLIENT_ID = "centos"
BROKER_PORT = 1883
CA_CERT = "caCert.pem"
CERTFILE = "ServerCert.pem"
KEYFILE = "ServerKey.pem"
MQTT_KEEPALIVE_INTERVAL = 45
publish_topic = "user/7/device/8CF9572000023509/downlink"
subscribe_topic = "user/7/device/8CF9572000023509/uplink"
token = ""
payload = Parse(json.dumps({
"Token":"OVc0/opKynDuz/DxVzaUcA==","Params":{
"FPort":8,"Data":"BAoAAQ==","Confirm":False,"DevEUI":"8CF9572000023509"
}
}),pub_message.DeviceDownlink())
def on_publish(client,userdata,mid):
print("Published...")
def on_connect(client,flags,rc):
client.subscribe(subscribe_topic,1)
client.publish(publish_topic,payload.SerializeToString())
def on_message(client,message):
print(message.topic)
print(message.payload)
#client.disconnect()
client = mqtt.Client(CLIENT_ID,clean_session=False,userdata=None,protocol=mqtt.MQTTv31,transport="tcp")
client.message_callback_add(subscribe_topic,on_message)
client.on_connect = on_connect
client.on_publish = on_publish
client.on_message = on_message
client.tls_set(ca_certs=CA_CERT,certfile=CERTFILE,keyfile=KEYFILE)
client.username_pw_set(username="xxxxxx",password="xxxxxx")
client.connect(MQTT_HOST,BROKER_PORT,MQTT_KEEPALIVE_INTERVAL)
client.loop_forever()
有没有做得不好的地方?欢迎您提出建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。