Spring Boot 整合 MQTT 发布/订阅消息

本文介绍了如何使用 Spring Boot 整合 MQTT,通过 Docker 安装 EMQX 作为 MQTT 服务器,详细讲解了配置、依赖引入、消息回调处理,并提供了测试方法及订阅发布的流程说明。
摘要由CSDN通过智能技术生成

1、使用 docker 命令安装 EMQX

这里以 EMQX 企业版 4.4.14 为例

  • 获取 Docker 镜像

    docker pull emqx/emqx-ee:4.4.14
    
  • 启动 Docker 容器

    docker run -d --name emqx-ee -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx-ee:4.4.14
    

2、整合 MQTT

  • 引入 依赖

    <!--mqtt-->
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-mqtt</artifactId>
        <version>5.5.14</version>
    </dependency>
    
  • 定义配置文件 application.yml

    spring:
      # MQTT配置信息
      mqtt:
        # MQTT服务地址,端口号默认1883,如果有多个,用逗号隔开
        url: tcp://192.168.40.138:1883
        # 用户名
        username: test
        # 密码
        password: 123456
        # 客户端id(不能重复)
        client-id: local-client
        # 超时时间(单位秒)
        timeout: 60
        # 心跳(单位秒)表示服务器每隔1.5*20秒的时间向客户端发送心跳判断客户端是否在线
        keep-alive: 20
        # 消息服务质量等级(0:最多传递一次,1:至少传递一次,2:仅传递一次)
        qos: 1
        # MQTT默认的消息推送主题,实际可在调用接口时指定
        default-topic: topic
    

    参数设置详情参考官方文档 :https://www.emqx.com/zh/blog/how-to-set-parameters-when-establishing-an-mqtt-connection

  • 定义配置类 MqttConfig.java

    import com.boyia.mqttdemo.mqtt.callback.OnMessageCallback;
    import org.eclipse.paho.client.mqttv3.MqttClient;
    import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
    import org.eclipse.paho.client.mqttv3.MqttException;
    import org.eclipse.paho.client.mqttv3.MqttMessage;
    import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
    import org.springframework.beans.factory
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值