请帮忙:) 我刚开始在 python 中使用 MQTT。 当我运行以下程序时:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("watchdog/#")
def on_message(client, userdata, msg):
message = str(msg.payload)
print(msg.topic+" "+message)
client = mqtt.Client()
client.username_pw_set('XXXX', password='XXXXXXX')
client.on_connect = on_connect
client.on_message = on_message
client.connect("XXXX", XXXXX, 60)
client.loop_forever()
有效负载始终包含以下文本:
b'XXX'
XXX 是消息,但 b' ' 部分总是出现。 一旦我在现成的客户端上打开相同的消息,消息就很好...所以我认为问题出在代码中,但我找不到问题所在。
有什么帮助或指示吗?
谢谢!
最佳答案
正如 Moses Koledoye 所说,b 代表字节 - 这意味着您正在打印的是一组字节的字符串版本。如果您将 str(msg.payload) 更改为简单的 msg.payload,您将获得不同的输出。
但是您还没有谈到消息负载是什么,所以您可能仍然会在打印 msg.payload 时遇到乱码。例如,如果发送的消息实际上是一串字节......
关于python - paho MQTT on_message 返回一条有趣的消息 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39300102/