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
块以捕获和处理可能发生的任何错误。
我已经为我的 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
块以捕获和处理可能发生的任何错误。