当前位置: 首页 > news >正文

MQTT协议介绍

一、MQTT定义

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是 IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,专为低带宽、高延迟或不可靠的网络环境设计。它广泛应用于物联网(IoT)智能家居工业自动化等领域。
 

MQTT 是基于二进制消息的发布/订阅编程模式的消息协议,如今已经成为 OASIS 规范,由于规范很简单,非常适合需要低功耗和网络带宽有限的 IoT 场景。

二、MQTT协议特点

  •  轻量级:占用极少的带宽和资源,适合嵌入式设备。

  • 发布/订阅模型:基于主题的消息传递机制,支持一对多通信。

  •  QoS机制:提供三种服务质量级别(QoS 0、QoS 1、QoS 2),确保消息传递的可靠性。

  • 跨平台:支持多种编程语言和操作系统。

通过MQTT协议,目前已经扩展出了数十个MQTT服务器端程序,可以通过PHP,JAVA,Python,C,C#等系统语言来向MQTT发送相关消息。

三、MQTT协议原理

MQTT 服务器是发布-订阅架构的转发中心,它可以非常简单地在Internet 服务器上实现。

服务器分发消息,因此是推送者,客户端可以发布消息(发送方)、订阅消息(接收方)或两者兼而有之。客户端(也称为节点)是一种智能设备,如微控制器或具有 TCP/IP 堆栈和实现 MQTT 协议的软件的计算机。

QoS(Quality of Service levels)服务质量是 MQTT 的一个重要特性。当我们使用时,连接已经在一定程度上是不是面向连接的。MQTT 在这里帮助避免信息丢失及其服务质量水平。 服务质量水平包括三个等级。

  • AtMostOnce ——最多一次
  • AtLeastOnce ——至少一次
  • ExactlyOnce ——恰好一次,这个服务质量可以确保数据准确的发送到订阅端。

四、MQTT协议封装类库

M2Mqtt

MQTTnet

更多学习资料:

C#通过MQTT与其他物联网设备通信 - 古兆洋 - 博客园

.NET 中MQTTnet使用方法,物联网通讯必备 - MQTT中文站

使用 MQTTnet 快速实现 MQTT 通信 - dreamw - 博客园

MQTTnet: 实战 MQTT 应用程序开发-CSDN博客

C# 基于MQTT创建客户端的可靠数据传输_c# mqtt-CSDN博客

http://www.xdnf.cn/news/380647.html

相关文章:

  • 数据结构算法习题通关:树遍历 / 哈夫曼 / 拓扑 / 哈希 / Dijkstra 全解析
  • Python中的列表list使用详解
  • 重复的子字符串
  • 【ts】defineProps数组的类型声明
  • 人工智能100问☞第19问:什么是专家系统?
  • 自定义类型-结构体(二)
  • 基于ssm的超市库存商品管理系统(全套)
  • Vue.js框架的优缺点
  • 2025年PMP 学习六 -第5章 项目范围管理 (5.1,5.2,5.3)
  • ubunut20.04 安装运行lvi-sam
  • JavaSE核心知识点02面向对象编程02-05(方法)
  • 【比赛真题解析】混合可乐
  • 翻转数位题目解释和代码
  • C语言复习--动态内存管理
  • 同步、异步、并发的区别
  • Python与YOLO:自动驾驶中的实时物体检测
  • comfyui 如何优雅的从Hugging Face 下载模型,文件夹
  • 2025年特种作业操作证考试题库及答案(登高架设作业)
  • AST(抽象语法树)与 HBO(基于历史的优化)详解
  • 使用 Jackson 在 Java 中解析和生成 JSON
  • Spring事务管理实现机制
  • Windows右键管理工具:轻松添加/删除/修改右键菜单项!
  • xml与注解的区别
  • 机器学习 day01
  • 如何更改typora图片存储位置
  • 将一张100 元的钞票换成1 元、2元、5 元和10 元的零钱,每种零钞至少一张
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解
  • C. scanf 函数基础
  • Linux--JsonCpp
  • 【C++】内存管理