gpt4 book ai didi

python - Paho(MQTT) 客户端无法连接

转载 作者:太空狗 更新时间:2023-10-30 01:50:32 25 4
gpt4 key购买 nike

我正在使用这个 python 脚本来实现一个基本的 Paho(MQTT) 订阅者,但在某些情况下它不会调用 on_connect

我尝试了以下,所有代码都完全相同:

  • 在 Raspbery pi 中运行,在台式机 (Ubuntu) 上代理。 有效
  • 在 Pc (Ubuntu) 上运行,在同一台 Pc 上代理。 不起作用
  • 在一台 Pc (Ubuntu) 上运行,在另一台 Pc (Ubuntu) 上代理。 不起作用
  • 在 PC (Ubuntu) 中运行,broker.hivemq.com 作为代理。 有效
  • 在 PC (Ubuntu) 中运行,broker.hivemq.com(它是 IP)作为代理。 有效

我也经常这样做:

  • mosquitto_sub/pub 在之前所有组合中的终端中。 有效
  • 所有先前组合中的官方 C++ paho 包装器。 有效

也尝试了官网列出的所有设置方法。所以 python 的 paho 库似乎与我的本地代理不兼容,除非我从我的树莓派上运行它。但是,如果从终端使用 MQTT,则使用相同的代理可以很好地与 c++ 的 paho 库一起使用。对可能发生的事情有什么想法吗?

     import paho.mqtt.client as mqtt

def on_connect(mqtt_client, obj, flags, rc):
mqtt_client.subscribe("test")
print "on_connect"

def on_message(mqtt_client, obj, msg):
print "on_message"

mqtt_client = mqtt.Client()
mqtt_client.on_connect = on_connect
mqtt_client.on_message = on_message
mqtt_client.connect("127.0.0.1",1883)
mqtt_client.loop_forever()

最佳答案

我在 Client's constructor 中遇到了同样的问题并更改了 MQTT 协议(protocol)的版本解决了。​​

mqtt_client = mqtt.Client("", True, None, mqtt.MQTTv31)

由于您没有指定协议(protocol),它使用默认协议(protocol):MQTTv311。

关于python - Paho(MQTT) 客户端无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38017111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com