paho.mqtt.client 订阅后收不到消息

paho.mqtt.client doesn't receive messages after subscription

我已经为我的 mosquitto 服务器写了一个小监听器,提供了代码。如果我用 mosquitto_sub 命令收听,我会正确地收到我发布的消息,但是 python 没有收到任何东西。我只有 "Connected" 消息。请帮忙

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()

问题出在 on_message 回调中的日志行。

它不知道如何记录 msg 对象

将其更改为以下内容:

def on_message(client, userdata, msg):
  logging.info("Received " + str(msg.payload))

这会将消息的有效负载转换为字符串。

编辑:

还值得指出的是,所有回调都在 try/expect 块中得到 运行,该块丢弃了生成的任何错误(因此是静默失败)。在回调中添加您自己的 try/expect 块以捕获和处理可能发生的任何错误。