当前位置: 代码网 > it编程>前端脚本>Python > python实现MQTT客户端通信的示例代码

python实现MQTT客户端通信的示例代码

2025年12月08日 Python 我要评论
mqtt协议简介mqtt(message queuing telemetry transport)是一个轻量级的发布/订阅消息传输协议,设计用于在低带宽、不可靠的网络环境中进行远程位置设备间的通信。它

mqtt协议简介

mqtt(message queuing telemetry transport)是一个轻量级的发布/订阅消息传输协议,设计用于在低带宽、不可靠的网络环境中进行远程位置设备间的通信。它使用发布/订阅的消息模式,提供了三种消息服务质量(qos)级别,并允许消息代理(broker)进行消息的持久化存储,从而确保消息的可靠传输。mqtt协议广泛应用于物联网(iot)领域,因为它具有开销小、协议简单、易于实现等特点。

下面使用python和paho-mqtt库编写了一个mqtt客户端代码示例。

mqtt客户端

import paho.mqtt.client as mqtt  
import time  
  
# mqtt服务器地址  
broker_address = "localhost"  # 替换为你的mqtt代理地址  
port = 1883  # mqtt代理的端口,默认为1883  
client_id = "python_mqtt_client"  # mqtt客户端的唯一id  
topic = "test/topic"  # 要发布和订阅的主题  
username = "your_username"  # mqtt代理的用户名  
password = "your_password"  # mqtt代理的密码  
  
# 当连接到mqtt代理时调用的回调函数  
def on_connect(client, userdata, flags, rc):  
    print(f"connected with result code {rc}")  
    # 订阅主题  
    client.subscribe(topic)  
  
# 当接收到mqtt消息时调用的回调函数  
def on_message(client, userdata, msg):  
    print(f"received message '{msg.payload.decode('utf-8')}' on topic '{msg.topic}' with qos {msg.qos}")  
  
# 创建mqtt客户端实例  
client = mqtt.client(client_id)  
  
# 设置用户名和密码  
client.username_pw_set(username, password)  
  
# 为客户端设置回调函数  
client.on_connect = on_connect  
client.on_message = on_message  
  
# 连接到mqtt代理  
client.connect(broker_address, port)  
  
# 开始网络循环,处理接收到的消息和重连  
client.loop_start()  
  
try:  
    print("publishing message...")  
    # 发布一条消息  
    client.publish(topic, "hello, mqtt with username and password!", qos=1)  
      
    # 等待用户输入,以保持程序运行并接收消息  
    print("press enter to exit...")  
    input()  
except keyboardinterrupt:  
    pass  
finally:  
    # 停止网络循环并断开连接  
    client.loop_stop()  
    client.disconnect()  
    print("disconnected from mqtt broker.")

导入所需库:导入paho.mqtt.client模块,以便使用其提供的mqtt客户端类。
设置mqtt代理信息:设置mqtt代理的地址、端口、客户端id、主题、用户名和密码。
定义回调函数
on_connect:当客户端成功连接到mqtt代理时调用。在这个函数中,我们订阅了指定的主题。
on_message:当客户端接收到mqtt消息时调用。在这个函数中,我们打印出接收到的消息内容。
创建mqtt客户端实例:使用指定的客户端id创建一个mqtt客户端实例。
设置用户名和密码:使用username_pw_set方法设置用于连接到mqtt代理的用户名和密码。
设置回调函数:将之前定义的回调函数绑定到客户端实例上。
连接到mqtt代理:使用connect方法连接到mqtt代理。
启动网络循环:使用loop_start方法启动一个独立的线程来处理网络连接和消息传递。
发布消息:使用publish方法发布一条消息到指定的主题。
等待用户输入:使用input函数等待用户输入,以保持程序运行并接收消息。
清理资源:在用户输入或接收到中断信号时,停止网络循环,断开与mqtt代理的连接,并打印断开连接的消息。

:需要将broker_address、username和password替换为自己的mqtt代理地址和认证信息。此外,如果mqtt代理配置需要ssl/tls加密连接,则还需要进行额外的配置来设置ssl/tls参数。

到此这篇关于python实现mqtt客户端通信的示例代码的文章就介绍到这了,更多相关python mqtt客户端通信内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com