@MikeScotty的回答不对。缺少的是启动MQTT网络循环。需要启动循环来处理发送keep-alive包、为QoS 1/2消息进行多段握手以及处理传入的订阅。在
如果你只想保持联系或者10秒钟,那么这样的方法就可以了import paho.mqtt.client as mqtt
import time
Broker = "192.168.43.246"
def on_connect(client, userdata, flages, rc):
print("Connected with result code=",rc)
client = mqtt.Client(client_id="Client123", clean_session=False, userdata=None)
client.on_connect = on_connect
client.connect(Broker, 1883, 60)
client.loop_start() # starts network loop on separate thread
time.sleep(10) # optionally wait some time
client.disconnect() # disconnect gracefully
client.loop_stop() # stops network loop
如果你想永远保持联系(或直到被杀),那么你有2个选择
^{pr2}$
这将在前台启动网络循环(并作为这样的块直到被杀死)。在
或者
^{3}$
或者...
client.connect(Broker, 1883, 60)
client.loop_start()
while True:
# do something else