基于开源Python MQTT Client连接阿里云IoT

简介: 前面介绍了基于开源JAVA MQTT Client连接阿里云IoT,这里面继续介绍如果使用Python MQTT Client连接阿里云IoT。

概述

前面介绍了基于开源JAVA MQTT Client连接阿里云IoT,这里面继续介绍如果使用Python MQTT Client连接阿里云IoT。

操作步骤

1、创建产品和设备

参考:阿里云物联网平台Qucik Start 创建产品和设备部分。

2、建议先使用MQTT.fx完成连接的快速测试及获取连接需要的相关信息,方便后续测试

使用MQTT.fx接入物联网平台

注意:关于认证签名的生成,可以参考签名工具中的js脚本,也可以参考JAVA MQTT Client的示例,Python这里不再单独实现。

3、Python MQTT SDK安装

pip install paho-mqtt

paho-mqtt

4、测试Code

# encoding: utf-8
import paho.mqtt.client as mqtt

# Client对象构造
MQTTHOST = "********.iot-as-mqtt.cn-shanghai.aliyuncs.com"
MQTTPORT = 1883
mqttClient = mqtt.Client("pythondevice2|securemode=3,signmethod=hmacsha1|")
mqttClient.username_pw_set("pythondevice2&********", "5D1090BECB4E4AED75BD5208EA420275********")


# 连接MQTT服务器
def on_mqtt_connect():
    mqttClient.connect(MQTTHOST, MQTTPORT, 60)
    mqttClient.loop_start()

# publish 消息
def on_publish(topic, payload, qos):
    mqttClient.publish(topic, payload, qos)

# 消息处理函数
def on_message_come(lient, userdata, msg):

    print(msg.topic + " " + ":" + str(msg.payload))


# subscribe 消息
def on_subscribe():
    # 订阅监听自定义Topic
    mqttClient.subscribe("/********/pythondevice2/user/update1", 1)
    mqttClient.on_message = on_message_come # 消息到来处理函数


def main():
    on_mqtt_connect()
    # 自定义Topic消息上行
    on_publish("/********/pythondevice2/user/test2", "Hello Python!", 1)
    # 系统属性Topic消息上行
    on_publish("/sys/********/pythondevice2/thing/event/property/post", "{\"method\":\"thing.service.property.set\",\"id\":\"1745506903\",\"params\":{\"Status\":1},\"version\":\"1.0.0\"}", 1)
    on_subscribe()
    while True:
        pass

if __name__ == '__main__':
    main()

5、测试

  • 5.1 系统Topic属性上报效果

_

  • 5.2 自定义Topic下行消息测试
    _

_

消息的全链路查询可以到:运维监控--》日志服务 中查询。

6、如果想直接使用阿里云官方SDK,参开官方SDK

参考链接

使用MQTT.fx接入物联网平台
基于开源JAVA MQTT Client连接阿里云IoT
阿里云物联网平台Qucik Start

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
1月前
|
传感器 监控 物联网
golang开源的可嵌入应用程序高性能的MQTT服务
golang开源的可嵌入应用程序高性能的MQTT服务
238 3
|
1月前
|
网络协议 Go 数据安全/隐私保护
golang开源的可嵌入应用程序高性能的MQTT服务
golang开源的可嵌入应用程序高性能的MQTT服务
320 2
|
4天前
|
消息中间件 存储 Java
RabbitMQ 是一个开源的消息代理软件
RabbitMQ 是一个开源的消息代理软件
13 2
|
6天前
|
消息中间件
RabbitMQ是一个功能强大的开源消息代理软件,用于处理消息队列
RabbitMQ是一个功能强大的开源消息代理软件,用于处理消息队列
9 0
|
1月前
|
Java Maven
【开源视频联动物联网平台】vertx写一个mqtt客户端
【开源视频联动物联网平台】vertx写一个mqtt客户端
76 1
|
1月前
【开源视频联动物联网平台】vertx写一个mqtt服务端
【开源视频联动物联网平台】vertx写一个mqtt服务端
41 1
|
10月前
|
消息中间件 中间件 Kafka
限时开源!阿里内部消息中间件合集:MQ+Kafka+体系图+笔记
近好多小伙伴说在准备金三银四的面试突击了,但是遇到消息中间件不知道该怎么学了,问我有没有成体系的消息中间件的学习方式。 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了一些纯手绘知识体系图、面试以及相关的学习笔记。
209 1
|
10月前
|
消息中间件 存储 弹性计算
【ECS生长万物之开源】部署RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。本文介绍如何通过ECS实例部署RabbitMQ。
EMQ
|
消息中间件 物联网 机器人
2023 年最适用于工业物联网领域的三款开源 MQTT Broker
本文对比分析了 2023 年工业物联网领域最优秀的三款 MQTT Broker,介绍了它们的优点、缺点和应用场景。
EMQ
898 0
2023 年最适用于工业物联网领域的三款开源 MQTT Broker
|
消息中间件 存储 供应链
开源之夏 2023|欢迎报名 Apache RocketMQ 社区项目!
开源之夏 2023 | 欢迎报名 Apache RocketMQ 社区项目!快来和社区大牛们一起完成课题项目,赢取技术提升和丰厚奖金吧~
135 0
开源之夏 2023|欢迎报名 Apache RocketMQ 社区项目!

热门文章

最新文章