我为mosquitto服务器编写了一个小侦听器,提供了代码。如果我使用mosquitto_sub命令进行监听,则可以正确接收到已发布的消息,但是python却什么也没收到。我只有“已连接”消息。请帮忙。
import logging
from paho.mqtt.client import Client
logging.basicConfig(level="INFO")
def on_connect(client, userdata, flags, rc):
logging.info("Connected")
client.subscribe("test")
def on_message(client, userdata, msg):
logging.info("Received " + msg)
client = Client("listener")
client.on_connect = on_connect
client.on_message = on_message
client.connect("localhost")
client.loop_forever()
答案 0 :(得分:1)
问题出在on_message
回调中您的日志记录行。
它不知道如何记录msg
对象
将其更改为以下内容:
def on_message(client, userdata, msg):
logging.info("Received " + str(msg.payload))
这会将味精的有效负载转换为字符串。
编辑:
还值得指出的是,所有回调都在try/expect
块中运行,该块会丢弃所有生成的错误(因此会导致静默失败)。在回调中添加自己的try/expect
块,以捕获和处理可能发生的任何错误。