首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏大数据和云计算技术

    MQTT协议

    MQTT协议简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,该协议支持所有平台,几乎可以把所有联网物品和外部连接起来 MQTT是基于二进制消息的发布/订阅编程模式的消息协议,最早由IBM提出的,如今已经成为OASIS规范。 MQTT协议入门 运用MQTT协议,设备可以很方便地连接到物联网云服务,管理设备并处理数据,最后应用到各种业务场景,如下图所示: ? 消息类型 MQTT拥有14种不同的消息类型: 1 CONNECT:客户端连接到MQTT代理 2 CONNACK:连接确认 3 PUBLISH:新发布消息 4 PUBACK:新发布消息确认,是QoS 2MQTT是为了物联网场景而优化,不但提供多个QoS选项(exact once、at least once、at most once),而且还有层级主题、遗嘱等等特性。

    6.2K40发布于 2018-03-08
  • 来自专栏C3ting

    一、MQTT协议

    一、MQTT协议 MQTT 协议的全称是 Message Queuing Telemetry Transport,翻译为消息队列传输探测,它是 ISO 标准下的一种基于发布 - 订阅模式的消息协议,它是基于 TCP/IP 协议簇的,它是为了改善网络设备硬件的性能和网络的性能来设计的。 这种订阅类的协议很新颖,客户端只需要订阅服务器的消息即可;无需重复的去请求接口获取信息,在物联网方面的应用比较常见;然后我就翻出了我的ESP8266和温度传感器(DHT11); 二、实战 1、环境搭建 中开发板设置中选择相应的开发板,我选择的是“NodeMCU 1.0”(NodeMCU-12E和NodeMCU-12F没有太大的区别) 并在端口处设置好刚才在设备管理器中看到的端口号: 接下来就可以开始愉快的开发过程了; 2、 include <ArduinoJson.h> #include <PubSubClient.h> #include <dht11.h> dht11 DHT11; #define DHT11PIN 2

    1.8K11编辑于 2023-12-26
  • 来自专栏高并发流量解决方案

    MQTT协议详解

    MQTT协议是ISO标准下的一个基于发布/订阅范式的消息协议,它运行在TCP/IP协议族上。 它的特点嘛,主要有这么几个: 轻量级:MQTT协议非常小巧,适合在资源受限的设备上运行。 简单:它的设计非常简洁,易于理解和实现。 开放:MQTT协议是开放的,任何人都可以使用它。 MQTT协议在很多领域都有广泛的应用,比如物联网(IoT)、智能家居、工业自动化等等。在这些领域中,MQTT协议可以帮助设备之间进行高效的通信和数据传输。 它的工作原理是这样的:客户端通过TCP/IP协议连接到MQTT代理服务器,然后可以发布消息到指定的主题,或者订阅一个或多个主题来接收消息。 QoS 2:只有一次(Exactly Once) 消息只被接收一次,无论网络环境如何变化,都能确保消息的完整性和顺序性。 发送方和接收方之间有一个四阶段的握手过程,确保消息的唯一性。

    1.1K10编辑于 2024-07-01
  • 来自专栏Linux兵工厂

    认识MQTT协议

    今天我们来认识一下物联网通信中重要的通信协议MQTTMQTT是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽和远程设备连接。 这正是MQTT能够实现的,他提到了使用推送通信系统的石油管道检测系统。 unsetunset2MQTT协议的关键概念和特性unsetunset 以下是MQTT协议的一些关键概念和特性: 1. 2. 主题(Topic): 主题是MQTT中消息的分类标识,用于将消息发送到特定的目标。订阅者可以通过订阅特定主题来接收与该主题相关的消息。 unsetunset小结unsetunset MQTT在实际开发中需要学习的内容有很多,而且很多细节需要注意。希望正在学习MQTT协议的小伙伴通过本节内容对MQTT协议有个初步的认识。

    1.9K10编辑于 2024-03-07
  • 来自专栏sunsky

    MQTT 协议基本介绍

    在简介完 MQTT 协议后,EMQ君将从其一些基本特点和基本概念为两部分,介绍 MQTT 协议。 基本特点 MQTT是一种发布/订阅传输协议,基本原理和实现如下; ? 小型传输,开销小,固定长度的头部是 2 字节,协议交换最小化,以降低网络流量; 整体上协议可拆分为:固定头部+可变头部+消息体,这就是为什么在介绍里说它非常适合"在物联网领域,传感器与服务器的通信,信息的收集 负载(Payload) 消息订阅者所具体接收的内容 简单示例 MQTT 协议主要是根据以下情况设计的: M2M(Machine to Machine),机器或设备间端到端通信,比如传感器之间的数据通讯 CONNECT报文的可变报头 CONNECT报文的可变报头由4部分组成: 协议名。协议名是UTF-8编码的大写的MQTT协议级别。MQTT 3.1.1的协议级别为4. 连接标志位。 基于 MQTT 5.0 协议现有的很多属性,在实现 MQTT 5.0 协议的时说不定还能挖掘出更多的有意思的新用法,不过这需要开发人员去多读协议的具体细节,去更深入地理解 MQTT 5.0 协议

    4.7K20发布于 2021-06-09
  • 来自专栏剑指工控

    云端协议MQTT介绍

    MQTT是一个基于客户端-服务器的消息发布/订阅传输协议MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 (5)小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。 四、MQTT协议原理 4.1 MQTT协议实现方式 实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者 4.3 MQTT客户端 一个使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接。 五、MQTT协议数据包结构 在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。

    2.7K30发布于 2021-11-09
  • 来自专栏PM吃瓜(公众号)

    MQTT协议通俗讲解

    例如,发布者按顺序 1,2,3,4 发送消息,订阅者收到的顺序可能是 1,2,3,2,3,4。 例如,订阅者收到的顺序可能是 1,2,3,3,4,而不是 1,2,3,2,3,4 QoS == 2 时,肯定不会存在乱序的问题。 ClientId)、客户端的主机名或 IP 地址,或者身份认证的结果,服务端可以限制对某些服务端资源的访问 服务端身份验证 (Authentication of Server by Client) MQTT 协议不是双向信任的,它没有提供客户端验证服务端身份的机制 TLS:客户端可以使用服务端发送的SSL证书验证服务端的身份 应用层:可以通过服务端给客户端发送凭证用于身份验证的应用层消息 -5-mqtt-topics-best-practices

    2.9K11发布于 2019-08-20
  • 来自专栏TopFE

    mqtt协议实战(一)

    mqtt简介 如果有人问你什么是mqtt协议,有什么特点,你就用下面这段官方的话来回答他。 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。 服务,然后每2秒推送一个消息, 这里推送的消息有几个参数比较重要需要解释一下 调用client.publish()方法的第一个参数是叫做topic 表明这个消息的主题或者分类。

    1.6K10编辑于 2022-01-24
  • 来自专栏嵌入式项目开发

    C语言代码封装MQTT协议报文,了解MQTT协议通信过程

    【1】MQTT协议介绍 MQTT是一种轻量级的通信协议,适用于物联网(IoT)和低带宽网络环境。 【2MQTT协议报文字段介绍 MQTT协议报文由两部分组成:固定报头和可变报头。 固定报头的格式是统一的,其中包括了报文类型和剩余长度两个字段。 可变报头的格式取决于报文类型。 下面是MQTT协议中各个报文类型的可变报头字段说明。 (1)CONNECT:MQTT连接请求报文 CONNECT报文包括固定报头和可变报头两部分。 可变报头包括了以下字段: 协议名(Protocol Name):用于标识MQTT协议的名称,固定为字符串"MQTT"; 协议级别(Protocol Level):用于标识所使用的MQTT协议的版本号,一般情况下为 【3】封装MQTT协议 这是一个使用C语言在Linux下建立TCP通信并发送MQTT报文的例子。 根据MQTT报文自己封装协议

    3.9K20编辑于 2023-05-27
  • 来自专栏EMQ 物联网

    MQTT 协议快速体验

    MQTT 连接在使用 MQTT 协议进行通信之前,需要先建立一个 MQTT 连接,连接由客户端向服务器端发起。 Host:为连接的服务器地址及协议协议一般有 4 种:基于普通 TCP 的 MQTT、基于 SSL/TLS 的 MQTT、基于 WebSocket 的 MQTT,基于加密 WebSocket 的 MQTT 更多细节可查看博客:MQTT 协议中的 Keep Alive 机制。 QoS 2:消息仅传送一次。 设计了重发和重复消息发现机制,保证消息到达对方并且严格只到达一次。更多关于 MQTT QoS 的介绍可查看博客:MQTT QoS 服务质量介绍。 图片使用同样的步骤,在 Sensor 2 连接里向 sensor/2/temperature 主题发布如下 JSON 消息。

    2.2K30编辑于 2022-10-09
  • 来自专栏运维猫

    MQTT-消息协议

    1、简介 MQTT(消息队列遥测传输)是ISO 标准下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。 Mosquitto是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# pip install paho-mqtt DEPRECATION: Python 2.7 will reach the end of /76/4460f078d0fb4689bc6dcd51b2a88ca491a83cb21cf74f46ca Successfully built paho-mqtt Installing collected You should consider upgrading via the 'pip install --upgrade pip' command. 2.使用paho-mqtt实现接收者 import

    2.5K20发布于 2020-05-22
  • 来自专栏技术小牛

    MQTT协议学习总结

    跟http类似,也是一个数据传输协议,基于TCP协议开发,它的特点是传输内容精简,而且有QoS(Quality of Service服务质量)机制,更适合物联网等网络环境不稳定,网络带宽小的场景使用; Mqtt Broker是什么? Mqtt服务器是多种多样的,因为mqtt只是一个传输协议,所有实现了这个协议的都可以做Mqtt服务器,我所了解到的实现方案有Swoole(PHP平台的)、Mosquitto(一个独立的mqtt协议服务组件 )、Emqx(一个独立的mqtt协议服务组件)等,还有大量云平台提供Mqtt协议传输服务,如腾讯云、阿里云、华为云等云计算服务商都有,自己搭的优点是成本低,因为可以基于现有服务器装一个组件就可以了,不需要额外的成本 怎样搭建Mqtt服务器?

    2.1K30编辑于 2021-12-24
  • 来自专栏全栈程序员必看

    rabbitmq使用mqtt协议

    二、mqtt协议是什么? 三、配置步骤 1.启用 rabbitmq的mqtt协议 2.mqtt 客户端依赖包 总结 ---- 前言 在网上学习物联网,发现有人可以用 springboot + rabbitmq可以搭建物联网( 这个不具体介绍了网上太多了 二、mqtt协议是什么? TCP协议位于传输层,MQTT 协议位于应用层,MQTT 协议构建于TCP/IP协议上,也就是说只要支持TCP/IP协议栈的地方,都可以使用MQTT协议。 rabbitmq_mqtt 代码如下(示例): rabbitmq-plugins enable rabbitmq_mqtt 2.mqtt 客户端依赖包 实现客户端消息的推送和订阅 使用的是spring-integration-mqtt

    5K10编辑于 2022-11-09
  • MQTT协议学习总结

    目录 1、MQTT协议介绍 1.1 MQTT简介 1.2 MQTT协议设计规范 1.3 MQTT协议主要特性 1.4 MQTT协议应用领域 2MQTT协议原理 2.1 MQTT协议实现方式 2.2 网络传输与应用消息 1字节固定报头,2字节心跳报文,最小化传输开销和协议交换,有效减少网络流量。 智慧城市、远程医疗、远程教育 电力、石油与能源等行业市场 2MQTT协议原理 2.1 MQTT协议实现方式 实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份 2:Bit[2-1]为Qos字段: 如果Bit 1和Bit 2都为0,表示QoS 0:至多一次; 如果Bit 1为1,表示QoS 1:至少一次; 如果Bit 2为1,表示QoS 2:只有一次 2协议版本 位无符号值表示客户端的版本等级。3.1.1版本的协议等级是4,MQTT v5.0的协议版本字段为5(0x05) 。

    4.9K22编辑于 2022-11-07
  • 来自专栏全志嵌入式那些事

    百问MQTT协议分析 - MQTT简述及协议报文格式组成

    16.1 mqtt协议介绍 16.1.1 概述 ​ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。 16.1.2 特点 a) 开放消息协议,简单易实现 b) 发布订阅模式,一对多消息发布 c) 基于TCP/IP网络连接 d) 1字节固定报头,2字节心跳报文,报文结构紧凑 e) 消息QoS支持,可靠传输保证 16.1.3 应用 ​ MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。 ,电动车站桩采集 f) 智慧城市、远程医疗、远程教育 g) 电力、石油与能源等行业市场 16.2 mqtt协议报文格式组成 16.2.1 mqtt控制报文结构 MQTT 协议通过交换预定义的 MQTT Used in MQTT 3.1.1 DUP1 QoS2 QoS2 RETAIN3 PUBACK Reserved 0 0 0 0 PUBREC Reserved 0 0 0 0 PUBREL Reserved

    1.2K10编辑于 2024-12-14
  • 来自专栏Niuery的技术日记

    轻量通讯协议 --- MQTT

    本篇文章先简单介绍一下该协议,然后使用MQTT客户端工具,并借助开源库编写客户端,试玩一下。 MQTT 的主要特点包括以下几点: 轻量级:MQTT 协议本身非常简洁,消息头部占用较少的带宽,使其在低带宽网络中运行效率高。 适应性:MQTT 可以在多种网络协议上运行,包括 TCP/IP、WebSocket 和其他协议。 总之,MQTT 是一种非常适合物联网和传感器网络的通信协议,因其轻量级和高效的特性而受到广泛应用。 (https://www.emqx.com/zh/blog/introduction-to-mqtt-qos) 很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP 传输协议 MQTT 定义了三个 QoS 等级,分别为: QoS 0,最多交付一次。 QoS 1,至少交付一次。 QoS 2,只交付一次。

    5.4K21编辑于 2023-10-22
  • 来自专栏喵了个咪的博客空间

    IOT设备通讯协议MQTT

    笔者的公司最近在做IOT设备相关的业务,基于这个契机寻找学习了一下关于IOT通讯协议相关的内容,最终在技术选型上选择了使用MQTT协议并且结合EMQ上层MQTT中间件实现提供链接服务,那么本轮博文就和大家来一起探讨学习有关 IOT设备的相关特性和MQTT协议的本质. 不同的系统可能无法使用HTTP,设备资源可能使用HTTP都奢侈 TCP/IP自定协议? 虽然不用在意系统,自定义报文怎么解决网络开销问题自主研发成本高,使用第三方IOT平台容易被技术或硬件绑定 2. ,使用发布/订阅的方式提供互相之间的通讯,MQTT是为在计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性: 该协议支持所有平台,几乎可以把所有联网物品和外部连接起来 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量; 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制; 除了MQTT协议特性外还有一些客观原因

    2.3K40发布于 2018-04-19
  • 来自专栏jmeter相关技术交流

    使用locust测试MQTT协议

    机会只留给那些有准备的人 一分耕耘、一份收获、人生就是要不断的成长和学习 本篇文章主要介绍如何使用locust对MQTT协议进行压测,jmeter也支持对mqtt协议进行压测,但是没有locust 性能就没有这么强 一、安装locust 1.首先你本机需要安装python,因为locust是基于python环境,本次python的版本是3.9.2 2.使用pip3 命令安装locust,提示了Successfully 服务器 from locust import User, TaskSet, events, task, between import paho.mqtt.client as mqtt import time kwargs) def increment(): global COUNTClient COUNTClient = COUNTClient+1 def time_delta(t1, t2) : return int((t2 - t1)*1000) class Message(object): def __init__(self, type, qos, topic, payload

    2K21发布于 2021-10-08
  • 来自专栏灰小猿技术社区

    浅谈物联网开发最热协议MQTT协议

    我们在上面说到,MQTT协议是一种基于发布/订阅模式的轻量级通讯协议,那么什么是订阅和发布呢? 这就是MQTT协议订阅&发布的一个简单比喻。 ? MQTT属于哪一层协议MQTT协议是构建于TCP/IP协议之上的,同时TCP/IP参考模型可以分为四层: 应用层 传输层 网络层 链路层 ? 而MQTT协议运行于TCP协议之上,属于应用层协议,因此只要是支持TCP/IP协议栈的地方,都可以使用MQTT协议。 描述 0 0 0 最多分发一次 1 0 1 至少分发一次 2 1 0 只分发一次 MQTT客户端的功能 发布消息给其它相关客户端 订阅主题请求接收相关的应用消息 取消订阅主题请求移除接收应用消息 MQTT协议的报文详情 报文 描述 流向 值 固定报头 可变报头 负载 CONNECT 客户端请求与服务器端建立连接 C->S 1 有 有 有 CONNACK 服务器端确认建立连接 S->C 2 有 有

    3.3K10发布于 2020-09-23
  • 来自专栏授客的专栏

    Tsung MQTT协议简介及MQTT xml文档配置介绍

    MQTT协议介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议 ,该协议构建于TCP/IP协议上。 MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。 2. MQTT协议原理 ? 实现MQTT协议需要:客户端和服务器端 MQTT协议中有三种身份:发布者(publishers)、代理(Broker,服务器)、订阅者(Subscriber)。 1,针对QoS 0应用程序消息,客户端最多只能收到一份消息,针对Qos 2,客户端可能会收到两份重复的消息。

    2.5K20发布于 2019-09-11
领券