我使用这个python脚本来实现一个基本的Paho(MQTT)订阅者,但是在某些情况下,它不会调用on_connect。
我尝试了下面的代码,所有代码都完全相同:
- 运行在一个Raspbery圆周率,经纪人在桌面PC(Ubuntu)。作品。
- 在PC(Ubuntu)上运行,代理在同一PC上。不工作。
- 在PC(Ubuntu)上运行,代理在其他PC(Ubuntu)上运行。不工作。
- 在PC(Ubuntu)上运行,broker.hivemq.com作为代理。工作。
- 运行在PC(Ubuntu),broker.hivemq.com(它的IP)作为代理。工作。
我通常也这样做:
- 在所有先前的组合终端mosquito_sub/pub.作品.
- 所有先前组合中的正式C++ paho Package 器。工作。
也尝试了官方网站上列出的所有设置方法。所以python的paho库似乎不能与我的本地代理很好地沿着,除非我从我的raspberry运行它。但是使用相同的代理可以与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()
1条答案
按热度按时间fykwrbwg1#
我遇到了同样的问题,在客户端的构造函数中更改MQTT协议的版本解决了这个问题。
由于未指定协议,因此它使用默认协议:MQTTv311。