这个 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 上运行,我需要做些什么不同的事情吗?
脚本没有问题。问题出在测试方法上。这个 Linux 命令:
mosquitto_pub -t 'top' -m 'hello'
在 Windows 上有不同的含义。 Windows 等效项是:
mosquitto_pub -t top -m hello