基于开源MQTT自主接入阿里云IoT平台(总)

简介:

本文由 GXIC 作者 wongxmig 完成,欢迎关注 IoT 开发者社区

1.基于MQTT自主接入IoT

阿里云IoT物联网平台支持MQTT协议自主接入。

1.1 连接域名

根据产品是在区域regionId不同而不同。

${productKey}.iot-as-mqtt.${regionId}.aliyuncs.com:1883

1.2 MQTT的Connect报文

设备端与阿里云IoT平台建立MQTT通道的CONNECT报文有三个关键参数:__客户端标识符 (ClientId) ,用户名(User Name),密码(Password)。__这三个参数由__设备三元组(productKey,deviceName,deviceSecret)__按照阿里云IoT签名规则生成。

参数
生成方式
描述
mqttClientId
clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|"
clientId:表示客户端ID,64字符内。 timestamp:表示当前时间毫秒值。 mqttClientId:格式中||内为扩展参数。 signmethod:表示签名算法类型。 securemode:表示目前安全模式,可选值有2 (TLS加密)和3(普通)
mqttUsername
deviceName+"&"+productKey
mqttPassword
sign_hmac(deviceSecret,content)
sign_hmac为mqttClientId中的signmethod
content为 "clientId${clientId}deviceName${deviceName}productKey${productKey}timestamp${timestamp}"

2. 三元组接入示例

2.1 设备三元组信息

设备三元组
productKey = a14Xib5kdYd
deviceName = light1983432
deviceSecret = oLyaKqVxtRvjH284LdhqVgVUx1UPy6zq

建立MQTT连接时参数
clientId = SN1928339
timestamp = 1539421321846
signmethod = hmacsha1 

2.2 参数生成结果

mqttClientId = SN1928339|securemode=3,signmethod=hmacsha1,timestamp=1539421321846|
mqttUsername = light1983432&a14Xib5kdYd
mqttPassword = b2488041f64f425016b467ee1c94959ebd592ad1

生成password的content
content=clientIdSN1928339deviceNamelight1983432productKeya14Xib5kdYdtimestamp1539421321846

2.3 建立连接

mqttClientId__作为MQTT客户端标识符 (ClientId) __
mqttUsername__作为MQTT用户名(User Name)__
mqttPassword__作为MQTT密码(Password)__

在线算法
https://1024tools.com/hmac
官方文档参考
https://help.aliyun.com/document_detail/63656.html

3. CONNACK响应码

image.png | left | 747x399

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4月前
|
消息中间件 人工智能 Apache
2025 OSCAR丨与创新者同频!Apache RocketMQ 邀您共赴开源之约
10 月 28 日,阿里云高级技术专家周礼分享如何基于 Apache RocketMQ 新特性构建异步化 Multi-Agent 系统。
208 43
|
消息中间件 运维 Serverless
商业版vs开源版:一图看懂云消息队列 RocketMQ 版核心优势
自建开源 RocketMQ 集群,为保证业务稳定性,往往需要按照业务请求的峰值去配置集群资源。云消息队列 RocketMQ 版 Serverless 实例通过资源快速伸缩,实现资源使用量与实际业务负载贴近,并按实际使用量计费,有效降低企业的运维压力和使用成本。
857 105
|
9月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
3015 42
|
9月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
716 37
|
8月前
|
消息中间件 Apache 双11
Apache RocketMQ + “太乙” = 开源贡献新体验
Apache RocketMQ 是 Apache 顶级项目,源于阿里巴巴,历经多年双十一考验。RocketMQ 联合“太乙”平台启动开源竞赛,提供贡献价值评价与奖金激励(最高 5000 元),助力开发者成为社区核心成员。竞赛包含详尽教程与自动搭建环境,促进技术生态繁荣,推动分布式消息处理技术发展。欢迎加入,共创开源未来!
326 1
|
消息中间件 运维 安全
C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验
游戏行业蓬勃发展,作为国内领先的 STEAM 游戏饰品交易的服务平台,看 C5GAME 如何利用 RocketMQ Serverless 技术,为千万级玩家提供流畅的游戏体验,同时降低成本并提升运维效率。
803 135
C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验
|
消息中间件 存储 Apache
恭喜 Apache RocketMQ、Apache Seata 荣获 2024 开源创新榜单“年度开源项目”
近日,以“新纪天工、开物焕彩——致敬开源的力量”为活动主题的“重大科技成就发布会(首场)”在国家科技传播中心成功举办,并隆重揭晓了 2024 开源创新榜单,旨在致敬中国开源力量,传播推广开源科技成就,营造中国开源创新生态。2024 年开源创新榜单由中国科协科学技术传播中心、中国计算机学会、中国通信学会、中国科学院软件研究所共同主办,中国开发者社区承办,以王怀民院士为首组建评审委员会,进行研讨评审,面向中国开源行业领域,遴选具有创新性、贡献度和影响力的开源项目、社区、应用场景与开源事件。在评审出的 10 个年度开源项目中,Apache RocketMQ、Apache Seata 成功入选。
466 109
|
11月前
|
消息中间件 存储 Apache
恭喜 Apache RocketMQ 荣获 2024 开源创新榜单“年度开源项目”
恭喜 Apache RocketMQ 荣获 2024 开源创新榜单“年度开源项目”
282 1
|
存储 算法 安全
FreeMQTT:一款Python语言实现的开源MQTT Server
FreeMQTT 是一款用 Python 语言并基于 Tornado 开发的开源 MQTT 服务器,支持 MQTT3.1.1 和 MQTT5.0 协议,提供多租户安全隔离、高效 Topic 匹配算法及实时上下线通知等功能,适用于 IoT 场景。快速启动仅需克隆仓库、安装依赖并运行服务。
1702 0
|
7月前
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。