AI Note

mqtt

SpringBoot3 整合 MQTT

1. MQTT 简介

  • MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是 IBM 公司开发的一个即时通讯协议,它是一种轻量级的、基于发布/订阅(publish/subscribe)模式的、为网络受限环境(如机器与机器之间的通信)设计的消息传输协议。

  • MQTT 协议广泛应用于物联网(IoT)领域,它具有以下特点:

  • Spring Integration: 是 Spring 针对信息流的抽象(消息传递的规范),支持 mqtt、mail、amqp 协议

  • Spring Data:针对数据库访问过程的抽象(统一的数据库访问方式)

  • Spring Integration 实现 mqtt 客户端所使用的类库:eclipse.phao.client.mqttv3

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  <!-- springboot版本 -->
  <spring.boot.version>3.0.2</spring.boot.version>
  <!-- spring integration 版本 -->
  <spring.integration.version>6.2.6</spring.integration.version>
  <lombok.version>1.18.24</lombok.version>
</properties>
<!-- 全局导入,子模块不需要声明,就可以使用依赖 -->
<dependencies>
  <!-- 简化Java代码 -->
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
    <scope>provided</scope>
  </dependency>
  <!-- 单元测试 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency></dependencies>
<!-- 子模块声明才能真正的导入 -->
<dependencyManagement>
  <dependencies>    <!-- springboot导入的2种方式
      1. 引入spring-boot-starter-parent <parent></parent>
      2. 引入spring-boot-dependencies   <dependency></dependency>
     -->    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>${spring.boot.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <!-- 核心包 -->
    <dependency>
      <groupId>org.springframework.integration</groupId>
      <artifactId>spring-integration-core</artifactId>
      <version>${spring.integration.version}</version>
    </dependency>
    <!-- 流支持依赖包 -->
    <dependency>
      <groupId>org.springframework.integration</groupId>
      <artifactId>spring-integration-stream</artifactId>
      <version>${spring.integration.version}</version>
    </dependency>
    <!-- integration 的 mqtt 依赖包 -->
    <dependency>
      <groupId>org.springframework.integration</groupId>
      <artifactId>spring-integration-mqtt</artifactId>
      <version>${spring.integration.version}</version>
    </dependency>
    <!-- springboot整合spring integration依赖包 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-integration</artifactId>
      <version>${spring.boot.version}</version>
    </dependency>  </dependencies></dependencyManagement>

On this page