前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >02.腾讯云物联网设备端学习---MQTT协议简介

02.腾讯云物联网设备端学习---MQTT协议简介

原创
作者头像
fancyxu
修改2021-03-27 10:33:37
2.5K0
修改2021-03-27 10:33:37
举报
文章被收录于专栏:腾讯云IoT

本系列主要目的在于记录腾讯云物联网设备端的学习笔记,并且对设备端SDK进行补充说明。

MQTT协议简介

MQTT协议3.1.1简介
MQTT协议3.1.1简介

腾讯云物联网目前主要兼容MQTT协议3.1.1版本,所以后续主要以3.1.1版本中的设计来展开。对于做应用开发来说,主要需要理解MQTT的基本概念以及相关特性,以下做简单概括:

  • 客户端:即物联网设备,可以通过腾讯云物联网SDK,包括IoT Hub C SDK以及IoT Explorer C SDK 等连接平台
  • 服务器:即物联网服务平台,比如IoT HubIoT Explorer
  • 服务质量:特别注意,服务质量只针对PUBLISH控制包。腾讯云物联网支持QoS0和QoS1(QoS2可在业务层做,比如在payload中增加去重标记)
    • QoS0:消息只发送一次
    • QoS1:消息发送后,需要接收到PUBACK,不然一定间隔后会重新发送,次数和间隔取决于平台和设备端实现
      • 设备端:sdk 中会告知QoS1消息是否到达或者超时失败,具体处理交给用户决定。在该系列后续的文章会提到,届时在此处补充链接。
      • 物联网服务平台:当QoS1消息未收到Puback会以3s间隔重发,最多3次
  • 会话:通过CleanSession(CONNECT控制包的标记)可以使用已有会话或者创建新会话。创建会话和使用已有会话只有一个区别,即使用已有会话会保留上个会话的订阅关系,以及收到离线下发和下发后未确认的QoS1消息。请参见MQTT持久性会话
  • 订阅:订阅的对象是主题名
    • IoT Hub中支持平台私有主题(平台已规定格式的主题名,具有特殊用途,比如广播等)和自定义设备相关主题(即以${productID}/${deviceName}/<usr_data>等),并控制发布/订阅权限
    • IoT Explorer中主要是使用平台私有主题进行交互,比如数据模板、OTA等
  • 保活:设备端具有保活机制,当设备无数据交互时,根据约定的keep alive值定期跟平台发送心跳包(即PINGREQ)
    • 设备端SDK当两次心跳包未收到回复(PINGRESP)时将会进行重连
    • 物联网服务平台会在1.5倍keep alive时间未收到心跳包时,断开与设备的连接

以上就是应用开发需要注意MQTT的相关事项,但是出于学习还是得弄清楚设备端的具体实现的。所以后续文章将会针对平台支持的11种MQTT包类型(CONNECT、CONNACK、PUBLISH、PUBACK、SUBSCRIBE、SUBACK、UNSUBSCRIBE、UNSUBACK、PINGREQ、PINGRESP、DISCONNECT)进行解析,并且结合一些项目经验进行说明。

相关参考:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.pdf

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MQTT协议简介
相关产品与服务
物联网通信
腾讯云物联网通信(Internet of Things Hub, IoT Hub)旨在提供一个安全、稳定、高效的连接平台,帮助开发者低成本、快速地实现“设备-设备”、“设备-用户应用”、“设备-云服务”之间可靠、高并发的数据通信。物联网通信平台不仅可以实现设备之间的互动、设备的数据上报和配置下发,还可以基于规则引擎和腾讯云产品打通,方便快捷地实现海量设备数据的存储、计算以及智能分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档