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

时间:2019-10-31 13:44:29

标签: python mqtt paho

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

1 个答案:

答案 0 :(得分:1)

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

它不知道如何记录msg对象

将其更改为以下内容:

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

这会将味精的有效负载转换为字符串。

编辑:

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