我正在使用此python脚本来实现基本的Paho(MQTT)订阅者,但在某些情况下它不会调用 on_connect 。
我尝试了以下所有代码:
我通常也这样做:
还尝试了官方网站上列出的所有设置方法。所以python的paho库似乎与我的本地经纪人不相处,除非我从我的树莓中运行它。但是使用相同的代理可以很好地与c ++的paho库一起使用,如果使用终端的MQTT。关于可能发生什么的任何想法?
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()
答案 0 :(得分:12)
我遇到了同样的问题,并在Client's constructor中更改了MQTT协议的版本解决了它。
mqtt_client = mqtt.Client("", True, None, mqtt.MQTTv31)
由于您未指定协议,因此它使用默认协议:MQTTv311。