python mqtt 实现消息订阅+消息推送 支持断线重连 ,自动重连,保活不掉线
【代码】python mqtt 实现消息订阅+消息推送支持断线重连 ,自动重连,保活不掉线。
·
python mqtt 实现消息订阅+消息推送 支持断线重连 ,自动重连,保活不掉线
安装paho-mqtt
pip install -i https://pypi.doubanio.com/simple paho-mqtt
完整代码:
import paho.mqtt.client as mqtt
import time
broker_address = '127.0.0.1'
broker_port = 1883
client_id = "myclientid-test0001"
keep_alive_interval = 60
client = mqtt.Client(client_id=client_id)
client.keep_alive = keep_alive_interval
def on_connect(client,userdata,flags,rc):
if rc == 0:
print("connected with result code:" + str(rc))
client.subscribe("topic/test")
else:
# 如果链接断开,尝试重新连接
print("Failed to reconnect to MQTT broker")
def on_message(client,userdata,msg):
print(msg.topic+""+str(msg.payload))
print("Sending heartbeat...")
client.publish("heartbeat", "alive")
def on_disconnect(client,userdata,rc):
if rc != 0:
print("disconnented from MQTT :"+str(rc))
def connect_broker():
# 设置连接断开的回调函数
client.on_connect = on_connect
client.on_message = on_message
client.on_disconnect = on_disconnect
client.reconnect_delay_set(min_delay=1,max_delay=120)
# 连接到mqtt 服务器
print("Connecting to MQTT broker...")
connectedFlag = 0
while connectedFlag != 1:
try:
client.connect(broker_address, broker_port)
print("First time connected to MQTT broker,已连接成功!")
connectedFlag = 1
client.loop_forever()
except:
print("Failed to connect to MQTT broker,try again 正在重试.....")
time.sleep(10)
if __name__ == '__main__':
connect_broker()
更多推荐
所有评论(0)