STM32-MQTT

文章介绍了MQTT协议的基本概念,如Broker/Client、Publish/Subscribe模型,以及STM32如何移植MQTT库进行数据发布和订阅。通过TCP连接,STM32设备作为MQTT客户端能与服务器建立连接,发布和订阅消息。文章还提供了简单的移植步骤和测试环境,包括Ubuntu服务器上MosquittoBroker的安装和客户端测试工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32-MQTT

1. MQTT简介

1.1 概述

消息队列遥测传输(Message Queuing Telemetry Transport, MQTT)是基于客户端(Client)/服务器(Server)发布(Pulishi)/订阅(Subscribe)范式的消息传输协议. MQTT具有轻量、开放、简单、设计易于实施等特点, 这些特性使其在许多情况非常适用, 包括机器到机器(Machine to Machine, M2M)和物联网(IoT)等受限环境, 这些环境对代码占用空间要求严格/或网络带宽非常宝贵. MQTT必须运行在提供有序、无损、双向连接的传输协议之上–通常是TCP/IP.

1.2 基本概念

mqtt-publish-subscribe

1.2.1 MQTT Broker(Server)/Client

MQTT协议定义了两种类型的网络实体: 一个消息代理(Broker)、多个客户端(Client).
Broker是一个服务器程序, 它的角色类似于邮局, 它接收所有从Client发出的消息(message), 然后将消息路由到合适的目的Client.
Client可以是运行MQTT库并通过网络连接到Broker的任意设备(从微控制器到服务器).

1.2.2 Publish/Subscribe & Topic

每个Client都可以将消息发布(Publish)到Broker, 或从Broker订阅(Subscribe)消息, 因此Client有两种角色: 发布者(Publisher)/订阅者(Subscriber).
消息在Broker中按照主题层次结构(Topic)组织. Publisher在发布消息时指定Topic, Broker在接收到消息时, 根据Topic将消息发布给订阅了该Topic的Subscriber.

1.3 工作过程

MQTT protocol example without QoS

MQTT Client和Broker通过TCP连接建立通信. 通常, Broker运行在服务器的1883端口上, 监听Client的连接请求.

  1. 建立连接(Connect). Client首先经过三次握手与Broker建立TCP连接, 然后发送Connect Command包登录Broker, Broker收到该包后, 回复Connect Ack包以确认Client的登陆请求, Client即可进行消息的订阅和发布.
  2. 发布消息(Publish). Client发送Publish Message包指定发布的消息内容(Message)及主题(Topic), Broker收到该包后不进行回复, 根据消息主题将该消息转发给订阅了该主题的所有Client.
  3. 订阅消息(Subscribe). Client发送Subscribe Request包指定需要订阅的主题, Broker收到该包后回复Subscribe Ack包确认订阅请求. 当Broker收到指定该主题的消息时, 会将该消息发布给所有订阅了该主题的Client.
  4. 取消订阅(Unsubscribe). Client发送Un
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值