Eclipse Paho MQTT Python Client 使用手册

Eclipse Paho MQTT Python Client 使用手册

原文地址:https://www.cooooder.com/archives/20210303

目录
介绍

paho.mqtt.python 是一个MQTT客户端python库,能够让应用程序简单方便的连接到MQTT代理进行消息发布、订阅主题和消息接收。
目前 paho.mqtt.python-1.5.1 版本支持5.0、3.1.1和3.1 MQTT协议,同时支持Python 2.7.9+或3.5+。

环境
  • MQTT代理:EMQ X Broker 4.2.6
  • Python 3.9.0
  • paho-mqtt 1.5.1
准备
  1. 参照 EMQ X Broker安装启动教程
    成功启动EMQ后,可通过浏览器访问 http://localhost:18083 admin/public 进入EMQ控制台,在【工具 > Websocket】模块可方便进行客户端连接、订阅、消息接收、发布等测试和调试工作

  2. Python 安装省略

  3. paho-mqtt 安装

pip install paho-mqtt
快速开始

Python快速实现MQTT主题订阅和消息接收

import paho.mqtt.client as mq_tt


def on_connect(client, userdata, flags, rc):
    """
    回调函数:当MQTT代理响应客户端连接请求时触发
    :param client: 回调返回的客户端实例
    :param userdata: Client()或user_data_set()中设置的私有用户数据
    :param flags: MQTT代理发送的响应标识
    :param rc: 连接结果
            0:连接成功
            1:连接被拒绝 - 协议版本
            2: 连接被拒绝 - 客户端标识符无效
            3:连接被拒绝 - 服务器不可用
            4:连接被拒绝 - 用户名或密码错误
            5:连接被拒绝 - 未授权6-255:当前未使用
    :return:
    """
    print("Connected with result code "+str(rc))
    # 在on_connect()中进行消息订阅,是因为如果丢失连接进行重连,主题也会重新被订阅
    client.subscribe("testTopic/#")


def on_message(client, userdata, message):
    """
    回调函数:当接收到MQTT代理发布的消息时触发
    :param client: 回调返回的客户端实例
    :param userdata: Client()或user_data_set()中设置的私有用户数据
    :param message: MQTTMessage的一个实例,这是一个包含主题,有效负载,qos,retain的类
    :return:
    """
    print(message.topic+" "+str(message.payload))


mq_client = mq_tt.Client(client_id='www.cooooder.com')
mq_client.on_connect = on_connect
mq_client.on_message = on_message
# 连接到EMQX Broker MQTT代理
mq_client.connect("127.0.0.1", 1883, 60)

# 阻塞式自动处理收发数据、自动处理重新连接,所有的数据处理逻辑都在预先设定好的回调函数中进行的
mq_client.loop_forever()

在 EMQ X Broker - 【客户端】可以看到客户端已连接
查看原图

在 EMQ X Broker - 【Websocket】发布testTopic主题消息
查看原图

Python程序打印出接收到的消息

Connected with result code 0
testTopic b'{ "msg": "Hello, World!" }'
testTopic b'{ "msg": "Hello, World2!" }'
常用API
C
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OurQueen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值