消息队列遥测传输(MQTT)是一种ISO标准消息传递协议,旨在通过不可靠的网络连接传感器。它在TCP/IP互联网协议之上工作。

两位工程师Andy Stanford-Clark和Arlen Nipper在1999年创建了协议。他们正在开发一个系统来监控不可靠卫星上的远程石油管道网络,并且需要低功耗,易于实现且非常可靠的消息传递系统。

自开发以来,MQTT已发展成为许多物联网系统中使用的关键消息传递协议,是家庭自动化,水培或远程气象站的理想选择。

MQTT的主要优势

1、效率

MQTT消息带宽小,设计合理在低功率系统上实施。这使其成为任何电池供电传感器的理想选择。使用MQTT作为消息传递协议可以延长项目的电池寿命。

2、轻松实现

实现MQTT非常简单远程传感器系统上的消息。由于大部分复杂工作都是在中央服务器上实现的,因此远程系统可以在其他地方使用其资源。

3、可靠性

MQTT用于任务关键型传感器系统,其中发送的任何消息都得到确认和接收至关重要。MQTT允许您通过声明其服务质量(QOS)级别来定义消息的重要性。在项目中使用MQTT可以让您高枕无忧,即可以收到所有重要信息。

4、数据不可知

此协议允许您以消息,数字,单词,甚至可扩展标记语言(XML)或JavaScript对象表示法(JSON)发送任何类型的文本数据。

MQTT如何工作

MQTT遵循发布/订阅原则,由两个元素组成:经纪人和客户。

MQTT包含两个元素:经纪人和客户。

任何MQTT系统的核心都是一个名为broker的应用程序,它可以接收和传输MQTT消息。当代理从客户端收到消息时,它可以将消息发送到订阅该消息主题的任何其他客户端。常用的MQTT代理是Mosquitto,可用于许多平台,如Windows,Linux或Raspberry Pi。甚至还有一个可供任何人使用的在线经纪人。

MQTT系统的第二个组件是客户端,它连接到代理并可以发布或订阅MQTT消息。对于基于ESP8266的项目,PubSubClient经常被用作MQTT客户端的基础。

MQTT消息按主题分类,主题是编码到每个消息中的字符串。客户端订阅主题,当代理收到消息时,它会将其传输给订阅它的任何客户端。MQTT主题具有与文件系统类似的结构,并使用/字符作为分隔符。一些示例主题是:

home/kitchen/light

home/lounge/lamp

home/lounge/light

通配符(#)可用于订阅级别上的所有消息。例如,订阅home/lounge/#的客户将收到家庭/休息室/灯和家庭/休息室/灯光消息。订阅home/#的客户将收到以上所有订阅。

MQTT提供简易消息系统

MQTT可以为制造商提供强大的功能,易于实现,可靠的消息系统。它适用于需要在设备之间进行通信的任何项目,例如家庭监控系统,并且可以在以后阶段轻松调整以合并其他传感器。

消息队列遥测传输(MQTT)介绍相关推荐

  1. 互联网协议 — MQTT 消息队列遥测传输协议

    目录 文章目录 目录 MQTT MQTT 的设计原则 MQTT 的实现原理 MQTT 的关键术语 MQTT 的方法 MQTT 报文结构 Linux MQTT Server Android MQTT C ...

  2. MQTT - 消息队列遥测传输协议

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级" ...

  3. MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议

    简介 mqtt有IBM公司开发,90年代的产物. 解决了如下问题:服务器必须要实现成千上万的接入:单词数据量小,不能出错:必须能够使用高延迟.偶尔断网等通信不可靠的风险:根据数据的重要程度和特性,设置 ...

  4. MQTT——具有.NET Core的消息队列遥测传输协议

    目录 介绍 什么是MQTT REST是什么? 体系结构 有效载荷 安全 代码样例 代理 发布者 订阅者 执行 概要 Git存储库链接 参考文献 介绍 发布/订阅模式是解耦软件的常见要求.有各种可用的技 ...

  5. java mqtt客户端_MQTT消息队列遥测传输

    说实话这个折腾了我好久好久,我才知道,原来学习不是最痛苦的,学习却学不会才是最痛苦的事.生产者将消息发布到一个主题,消费者从该协议里读取数据,MQTT是为IoT物联网通信设计的协议,MQTT使物联网低 ...

  6. Kafka,ActiveMQ,RabbitMQ等消息队列使用的场景介绍

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:cws1214 blog.csdn.net/cws1214/article/deta ...

  7. python 消息中间件_消息队列中间件 RabbitMQ 详细介绍——安装与基本应用(Python)...

    RabbitMQ 是当前最流行的消息中间件(Message Broker)之一,支持多种消息协议(如 AMQP.MQTT). 同时它也是一个轻量级的非常易于部署的开源软件,可以运行在当前大多数操作系统 ...

  8. 一种MQTT客户端消息队列的设计

    MQTT 简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...

  9. 消息队列服务器 轻量,PHP的轻量消息队列php-resque使用说明

    消息队列处理后台任务带来的问题 项目中经常会有后台运行任务的需求,比如发送邮件时,因为要连接邮件服务器,往往需要5-10秒甚至更长时间,如果能先给用户一个成功的提示信息,然后在后台慢慢处理发送邮件的操 ...

最新文章

  1. html生成的超级链接预览功能,超链接特效
  2. ​linux中使用文本工具截取ip 的几种方法
  3. LinkedList详解,看这篇就够了
  4. CentOS7 开机自启动脚本 chkconfig方式
  5. 安卓线程同步面试_面试BAT大厂,可少不了这些题目!
  6. java 下面的while语句退出时_java 下面的while语句退出时
  7. libvpx在windows下的编译
  8. 如何从阿里巴巴矢量图标库引入图标
  9. 利用python在word文档中查找关键字(支持多个文档和多个关键字)
  10. 算法学习之贪心法(会议安排)
  11. java swing 有哪些_一个经典的java swing gui设计(几乎包含所有常用的控件及布局)
  12. 【免费分享】论文查重软件(亲测好用!)
  13. TCP快速恢复算法PRR
  14. 李佳琦同款美容仪,让护肤品效果翻倍
  15. 微信企业号的五个典型案例分享
  16. Android Lint代码检查实践
  17. 【论文翻译】Cluster Contrast for Unsupervised Person Re-Identification(2021)
  18. 百度在线html,百度编辑器-Ueditor
  19. 牛客网——歪脖子树下的灯
  20. SQL超级详细的使用教程

热门文章

  1. 测试邮件系统需要做的准备工作
  2. dm365 resize
  3. H264关于RTP协议的实现
  4. shopee虾皮科技测试工程师第一次笔试
  5. oracle 命令日志输出,ORACLE常用命令日志
  6. oracle存储过程关键字有哪些,ORACLESTREAMS存储过程中的一些参数有哪些?
  7. mysqld:表mysql.plugin不存在_99%测试工程师不知道的数据库知识|干货
  8. c#操作html dom元素,C#获取与修改HTML DOM元素信息
  9. 计算机网络课程思政教学设计,信息与网络工程学院成功举办第一届课程思政教学设计大赛...
  10. 前后端分离的项目部署到tomcat_如何在开发时部署和运行前后端分离的JavaWeb项目...