使用 Python paho-mqtt 的简单 MQTT 订阅者可以在 LInux 上运行,但在 Windows 11 上失败

问题描述 投票:0回答:1

这个 Python 3.11 脚本:

import paho.mqtt.client as mqtt

def onMQTT(client, userdata, message):
  print(message.payload)

if __name__ == '__main__':
  topic = 'top'
  client = mqtt.Client()
  client.connect('localhost', 1883)
  client.message_callback_add(topic, onMQTT)
  (result, mid) = client.subscribe(topic, qos=2)

  if result == mqtt.MQTT_ERR_SUCCESS:
    print(f'Subscribed to: {topic}.')

  client.loop_forever()

在 Linux 上按预期工作。在 Windows 11 上,它打印

Subscribed to: top.
,但无法接收主题,而
mosquitto_sub -t 'top'
命令接收
top
主题没有问题。为了让这个脚本在 Windows 11 上运行,我需要做些什么不同的事情吗?

python linux windows mqtt
1个回答
0
投票

脚本没有问题。问题出在测试方法上。这个 Linux 命令:

mosquitto_pub -t 'top' -m 'hello'

在 Windows 上有不同的含义。 Windows 等效项是:

mosquitto_pub -t top -m hello
© www.soinside.com 2019 - 2024. All rights reserved.