文章目录

  • MQTT介绍
    • 1 MQTT历史
    • 2 MQTT版本

MQTT介绍

MQTT是一个客户端服务端架构发布/订阅模式消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。

以上MQTT(消息队列遥测传输)协议规范中的介绍很好地描述了MQTT的全部含义。它是一种很轻的通讯协议。与HTTP之类的协议相比,MQTT在通过网络传输数据时表现出众。该协议的另一个重要特点是易于在客户端实现。因此,MQTT成为了当今世界上最受欢迎的物联网协议。它已广泛应用于车联网、智能家居、即时聊天应用和工业互联网等领域。目前通过MQTT协议连接的设备已经过亿,这些都得益于MQTT 协议为设备提供了稳定、可靠、易用的通信基础。

1 MQTT历史

MQTT协议最初版本是在1999年建立的。该协议的发明人是的Andy Stanford-ClarkArlen Nipper

他们当时正在开发一个利用卫星通讯监控输油管道的项目。为了实现这个项目要求,他们需要开发一种用于嵌入式设备的通讯协议,这种通讯协议必须满足以下条件:

  • 易于实现
  • 数据传输的服务质量可控
  • 占用带宽小
  • 传输数据内容不可预知
  • 设备连接状态可知

从以上几点不难看出,MQTT 从诞生之初就是专为低带宽、高延迟或不可靠的网络而设计的。虽然历经几十年的更新和变化,以上这些特点仍然是MQTT协议的核心特点。但是与最初不同的是,MQTT协议已经从嵌入式系统应用拓展到开放的物联网(IoT)领域。

2 MQTT版本

目前MQTT主流版本有两个,分别是MQTT3.1.1MQTT5。MQTT3.1.1是在2014年10月发布的,而MQTT5是在2019年3月发布的。由于MQTT3.1.1与MQTT5的时间相差了将近五年,且MQTT5的发布时间距今不久,因此在本文书写时(2020年10月),MQTT3.1.1仍然主流版本。

MQTT5是在MQTT3.1.1的基础上进行了升级。因此MQTT5是完全兼容MQTT3.1.1的。而MQTT5是在MQTT3.1.1的基础上添加了更多的功能补充完善MQTT协议。

本教程将会重点针对MQTT3.1.1进行介绍,这么做有几点原因:

  1. MQTT3.1.1是MQTT5的基础,因此掌握了MQTT3.1.1后可以通过进一步学习掌握MQTT5的使用。
  2. 当前多种流行编程语言的MQTT客户端库仍然只支持MQTT3.1.1,而不支持MQTT5。
  3. 目前物联网环境中的大量设备仍然使用MQTT3.1.1协议而不支持MQTT5协议。

基于以上几点原因,本教程将以MQTT3.1.1作为重点讲解。毕竟掌握了MQTT3.1.1,对于学习MQTT5是没有任何浪费的。学会MQTT3.1.1后,如果想要使用MQTT5。那么无需重新学习MQTT5,而只要利用MQTT3.1.1的基础再学习MQTT5的新功能就可以了。

内容来自 -----> 太极创客
详情可见太极创客官网,内有Arduino、ESP32等详细教程

【MQTT基础篇(一)】MQTT介绍相关推荐

  1. 【MQTT基础篇(五)】发布、订阅和取消订阅

    文章目录 发布.订阅和取消订阅 1 PUBLISH – 发布消息 1.1 topicName – 主题名 1.2 QoS – 服务质量等级 1.3 packetId – 报文标识符 1.4 retai ...

  2. 【MQTT基础篇(二)】MQTT基础

    文章目录 MQTT基础 1 MQTT服务端 2 MQTT客户端 3 MQTT主题 4 MQTT 发布/订阅 特性 MQTT基础 在MQTT协议通讯中,有两个最为重要的角色.它们分别是服务端和客户端. ...

  3. WF4.0 基础篇 (二) Activity介绍及WriteLine Activity的使用

    从本篇开始,将正式讲解WF4.0,本文主要涉及如下内容:Activity介绍, WF4.0 中工作流的结构,通过WriteLine演示InArgument<T>参数的使用 目录 1     ...

  4. Dubbo 专题(基础篇):Dubbo 介绍、环境搭建与实践

    前几天复习了 Dubbo 相关的技术点,趁热打铁记录一下,本篇博客属于 Dubbo 的入门基础篇,内容主要包括 Dubbo 概念,Dubbo 特点,Dubbo 基本工作原理,Dubbo 环境搭建,Du ...

  5. 云计算基础教程(第2版)笔记——基础篇与技术篇介绍

    文章目录 前言 第一篇        基础篇 一 绪论 1.1 云计算的概念以及特征 1.1.1云计算的基本概念 1.1.2云计算的基本特征 1.2 云计算发展简史 1.3 三种业务模式介绍 1. 基 ...

  6. 【MQTT基础篇(七)】MQTT主题

    文章目录 MQTT主题 1 主题基本形式 2 主题分级 3 主题通配符 3.1 单级通配符: + 3.2 多级通配符 \# 4 主题应用注意事项 4.1 以$开始的主题 4.2 不要用 "/ ...

  7. 【MQTT基础篇(十四)】MQTT心跳机制

    文章目录 MQTT心跳机制 MQTT心跳机制 在医院里,医生利用心跳来判断患者是否还有生命体征.对于MQTT服务器来说,它要判断一台MQTT客户端是否依然保持连接可以检查这台客户端是不是经常发送消息给 ...

  8. 【MQTT基础篇(十)】QoS 服务质量等级

    文章目录 QoS 服务质量等级 1 什么是服务质量? 1.1 QoS = 0 最多发一次 1.2 QoS = 1 最少发一次 1.3 QoS = 2 保证收一次 2 设置QoS 2.1 发布消息 2. ...

  9. I.MX6ULL_Linux_基础篇(11) DDR介绍与校准

    系统级芯片通常要使用外部RAM作为程序运行空间,DDR是其中一种.但是DDR的速度发展到如今速度已经很快了,如DDR5已经达到6000,因此也会产生一些问题,比如容易受到干扰,甚至不同的pcb,cpu ...

最新文章

  1. JS的IE和Firefox兼容性汇编(原作:hotman_x)- -
  2. [转]centos5.2用memcache 来作PHP 的session.save_handler
  3. 用python画爱心动图_编写Python爬虫抓取暴走漫画上gif图片的实例分享
  4. android 设计qq界面,[考试求助]仿照腾讯QQ应用软件,编写Android程序,登录界面设计...
  5. javascript类型系统——正则表达式RegExp类型
  6. java中求5的阶乘
  7. Linux 启/关 自启动服务
  8. 在vue中实现picker样式_基于vue的颜色选择器vue-color-picker
  9. Linux下的虚拟机安装
  10. python是什么-什么是Python?最全的python百科
  11. Linux之scsi网络存储
  12. Iphone开发Interface Builder出现Assertion Failure错误
  13. matlab两个运动同时进行,多体运动的matlab动画演示
  14. Python:实现greedy knapsack贪婪的背包算法(附完整源码)
  15. 背包问题(最大装载价值)
  16. 德银天下港交所上市:市值39亿港元 陕汽集团是大股东
  17. RMON MIB:远程监控 管理信息库
  18. mac下展示隐藏文件
  19. Caffeine教程
  20. 包收录外链平台都有哪些

热门文章

  1. [Webpy]在webpy中使用jinja2模板
  2. 测绘技能大赛-无人机航测虚拟仿真(内业部分)
  3. 手机云便签怎么设置休息日免打扰?
  4. TDA2XEVM从EMMC启动
  5. stm32_GPIO模拟I2c读写EEPROM
  6. pytorch优化器学习率调整策略以及正确用法
  7. MongoDB+Node.js+express简单实现数据的提交与回显
  8. java类与对象实验报告心得体会_java实习实训报告心得【三篇】
  9. 别忘了看,今年中秋月亮“瘦”了!网友扎心了:我还没瘦…
  10. Go语言编程笔记16:存储数据