MQTT 简介

news2024/11/15 18:02:19

MQTT 简介

MQTT 是非常简单的协议,最初由 IBM 的两位工程师 Andy Stanford-Clark 以及 Arlen Nipper 在 1999 年为监控输油管道设计的。它被设计的场景就是有限的带宽、轻量级以及很小的耗电量,在那个时候,卫星宽带就是那么小,且贵得让人肉疼。(en.wikipedia.org/wiki/MQTT)

到了现代社会,虽然带宽的成本大大降低,但是仍有大量的场景需要用到这种协议,比如,智能家居(其实还是物联网)。许多的小型物联网设备靠着一块纽扣电池需要工作几年的时间,因此 MQTT 非常适合用来当作应用层的传输协议。

总结来说,MQTT 就是一个服务端、客户端架构的发布订阅消息传输协议。它非常轻量、开放、简单,设计上就非常容易实现。这些特性让它非常适合在如机器与机器(M2M)以及物联网(IoT) 这样受限于小内存以及窄带宽的领域发挥作用。(docs.oasis-open.org/mqtt/mqtt/v…)

IBM 在 2013 年将 3.1 版本提交到了 OASIS,而在之后的 2014 年,OASIS 加了很小的改动,发布了 3.1.1 版本。

2019 年,OASIS 给 MQTT 增加了很多特性,比如更好的错误处理、共享订阅、消息内容类型等等,版本也升级到了 5,之后也会用专门的章节来说说这些特性。

Hello World

首先,你需要有一个 MQTT Broker。首先需要安装 mosquitto …… 嗯?你不知道这是什么?好吧,那就换个更简单的做法。

首先,我们可以用一些公共的,比如国内的 EMQ(杭州映云科技有限公司)提供的 broker.emqx.io(这里必须给国产软件打广告,他们提供的 MQTTX 客户端是我目前用的最顺手的,Broker 的功能也非常强大,我计划专门出一篇来介绍服务端的搭建)。

然后,也是他们家提供的 MQTTX 客户端 ,用 Electron 实现的,各平台都支持,直接下载即可。

打开 MQTTX 客户端,我们开始一次简单的测试。

  1. 点击左侧侧边栏的 + ,创建一个连接(这个 + ,我认为有点不符合交互逻辑,作为一个创建按钮跟其它的按钮是不同级别的,放在连接列表里面,与新建分组放一起更合理);
  2. 这时候,会跳出一个创建页面,然后随便填一个名称,点击连接即可,如果没遇到网络问题的话,就可以顺利连接上(你看,它们知道你懒,Broker 地址、端口之类的全部帮你填好了,这点也非常值得做技术类产品的我们学习,如何让用户一开始以最低的成本来使用产品);
  3. 现在,我们来创建一个订阅,点击页面中的添加订阅,在弹出的对话框中,填一个随机一点的 topic,比如 test/807739542134,毕竟这是公共的 Broker,避免跟其它人冲突,然后点击确定即可。
  4. 最后,我们来发布一个消息,在左下角,有个输入框提示输入 Topic,我们就输入 test/807739542134,在它下面的内容框里面,输入 {"hellow": "world"},点击它更下面的纸飞机,发送后,你就能看到,接收到了自己给自己发送的消息。

7.jpg

好了,这次就先到这,非常简单的介绍,接下来会尽可能详细介绍 MQTT 的一些概念、原理以及实践应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1536248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯算法心得——游戏(优先队列)

大家好,我是晴天学长,优先队列的题,式子化简非常重要,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .游戏 2) .算法思路 附近最小 1.接收数据 2.找出最小的&#…

C#探索之路基础篇(2):接口Interface的概念、实现、应用范围

文章目录 1 概念2 示例代码:2.1 简单接口的实现2.2 简单的使用接口2.3 使用接口呈现多态性2.4 通过接口实现一个数组迭代器2.5 通过接口来实现松耦合的关系2.6 使用接口实现可扩展、便利性 3 使用范围与时机4 注意事项 不知道大家在学习的过程中,有没有反…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(警告弹窗)

通过CustomDialogController类显示自定义弹窗。使用弹窗组件时,可优先考虑自定义弹窗,便于自定义弹窗的样式与内容。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 接口 Custom…

【实例】React 状态管理库 MobX Redux 入门及对比

上一篇:【实例】React 组件传值方法: Props、回调函数、Context、路由传参 MobX MobX 是一个状态管理库,它提供了一种响应式的数据流方案,使得状态的变化能够自动地反映到相关的组件中。 MobX 的核心理念是可观察的状态(Observa…

一种基于约化因子上三角矩阵求逆方法与MATLAB仿真

一种基于约化因子上三角矩阵求逆的方法与MATLAB仿真 目录 前言 一、上三角矩阵单位化 二、C对角矩阵求逆 三、A 矩阵求逆 四、A矩阵求逆 五、计算量分析 六、MATLAB仿真 七、参考资料 总结 前言 矩阵运算广泛应用于实时性要求的各类电路中,其中矩阵求逆运算…

04课程发布模块之课程审核

课程审核 课程审核是为了防止课程信息出现违规情况,课程信息不完善对网站用户体验也不好,课程审核不仅起到监督作用,也是帮助教学机构规范使用平台的手段 教学机构提交课程审核后,平台运营人员登录运营平台进行课程审核&#xf…

SpringBoot ---HTML转PDF工具

之前项目用的WKHtmlToPdf,速度较慢,现在需要改成基于ITEXT java使用itext7实现html转pdf_java使用itext7实现html转pdf全代码完整示例 cainiaobulan-CSDN博客文章浏览阅读2.7k次。使用itext7html转pdf_java使用itext7实现html转pdf全代码完整示例 caini…

C++之继承详解

一.继承基础知识 继承定义: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设…

电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll

电脑文件msvcp100.dll丢失原因,最近有朋友在问这个,显然会问这个的人,一般都是遇到了msvcp100.dll丢失的问题了,今天我们就来详细的给大家说说msvcp100.dll这个文件吧,我们只有了解了msvcp100.dll这个文件,…

C语言,自定义数据类型

引言: C语言当中除了,自己带的基本数据类型,还有一些自定义数据类型,用户自己可以控制数据类型大小,所包含的元素,使用起来更加方便,快捷。 一 数组arr: 对于数组而言&#xff0…

LeetCod459:重复的子字符串

题目描述 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入: s “abcabcabcabc” 输出: true 解释: 可…

Obsidian插件PicGo-图床创建使用[腾讯云保姆级教程]

一、下载PicGo并配置 1:安装插件 首先插件市场搜索picgo会出现Image auto upload,这个就是PicGo安装此插件并启用即可 2:安装PicGo软件 打开此链接:https://github.com/Molunerfinn/PicGo 自己选择一个方式下载,我…

unicloud 云函数 介绍及使用

普通云函数 callFunction方式云函数,也称之为普通云函数。 uni-app的前端代码,不再执行uni.request联网,而是通过uniCloud.callFunction调用云函数。 callFunction方式避免了服务器提供域名,不暴露固定ip,减少被攻击…

【JS】闭包的漏洞

下面这段代码可以实现:通过立即执行函数o返回对象中的get方法,通过参数key得到fn函数内部对象obj中的值。 var fn function () {var obj {a: 1,b: 2}return {get: function (key) {return obj[key]}} }() console.log(fn.get(b)); // 2这是一个典型的…

3个好用的WP免费主题

免费wordpress模板下载 高端大气上档次的免费wordpress主题,首页大图全屏显示经典风格的wordpress主题。 https://www.wpniu.com/themes/289.html 经典的红色免费wordpress主题 这是一款经典的免费wordpress主题,被广泛应用于多个行业的网站。 https…

智慧公厕的系统构成与功能解析

智慧公厕系统是通过传感器和云平台相结合的创新技术,旨在提供更好的公厕管理与服务。智慧公厕从系统的构成来看,主要分为感知层(数据收集)、传输层(数据传输)、平台层(数据处理)和应…

VUE+Vant实现H5组织架构选人选公司组件

提醒自己: 这是之前的逻辑,或许你重新写会有更好的方法,可以参考逻辑!!! 功能介绍 1.有面包屑点击切换 2.有公司、部门、人员 3.单选、多选实现 4.编辑/回显 5.使用随意切换层级和跳转到指定层级回显等功…

CSAPP | Lab1-Data Lab 详细解析

You may assume that your machine:1. Uses 2s complement, 32-bit representations of integers.2. Performs right shifts arithmetically.3. Has unpredictable behavior when shifting if the shift amountis less than 0 or greater than 31.Part1:整数 1.Bit…

力扣爆刷第102天之hot100五连刷96-100

力扣爆刷第102天之hot100五连刷96-100 文章目录 力扣爆刷第102天之hot100五连刷96-100一、136. 只出现一次的数字二、169. 多数元素三、75. 颜色分类四、31. 下一个排列五、287. 寻找重复数 一、136. 只出现一次的数字 题目链接:https://leetcode.cn/problems/sing…

Java疫苗接种管理系统

本系统lw为2024-3-21本人原创,查chong13% 1.3W字,可以直接上交,这并不是乱七八糟的技术文档和项目文档。 4.2 功能结构设计 可视化的疫苗接种管理系统功能结构设计主要包括以下几个模块: 登录注册模块:这个模块负责…