搭建springboot和Vue页面之间的MQTT通信

本文介绍了如何在Linux服务器上安装和启动EMQXMQTT服务器,并展示了如何在SpringBoot项目中引入MQTT依赖以实现连接和消息发布。同时,提供了Vue前端应用的代码示例,用于接收和发送MQTT消息。

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

1.首先在一台准备好的Linux服务器安装EMQX,作为MQTT服务器
1.wget https://www.emqx.com/zh/downloads/broker/5.0.21/emqx-5.0.21-el8-amd64.tar.gz
2.mkdir -p emqx && tar -zxvf emqx-5.0.21-el8-amd64.tar.gz -C emqx
3.启动 EMQX
./emqx/bin/emqx start
放行端口:
18083(mqtt后台端口 )
8083(mqtt的websocket连接端口 )
1883(mqtt的TCP连接端口 )
2.访问EMQX客户端:服务器IP:18083,如果出现如下页面,说明安装成功

初始账号:admin
初始密码:public
登录进去会提示修改密码,将密码改成自己的即可

在这里插入图片描述

springboot项目引入MQTT

一、引入依赖

 <!--MQTT协议依赖-->
 <dependency>
     <groupId>org.eclipse.paho</groupId>
     <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
     <version>1.2.0</version>
 </dependency>
 <!-- https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-mqtt -->
 <dependency>
     <groupId>org.springframework.integration</groupId>
     <artifactId>spring-integration-mqtt</artifactId>
     <version>5.4.3</version>
 </dependency>

二、新建类:MyMqttServer.java(初始化mqtt,发布和订阅主题的类)

package com.system.mqttMessage;

import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;

import java.util.*;

/**
 * @author wangghua
 * @ClassName MyMqttClient
 * @描述:
 * @datetime 2023年 4月 28日 14:34
 */
@Async
public class MyMqttServer {
   
   
    private static final Logger logger = LoggerFactory.getLogger(MyMqttServer.class);
    public static MqttClient mqttClient = null;
    private static MemoryPersistence memoryPersistence = null;
    private static MqttConnectOptions mqttConnectOptions = null;
    private static String clientId = "serviceId:20230428123456789";
    private static String mqttuser = "admin";
    private static String password = "你修改的密码";
    private static String Host = "tcp://服务器IP:1883";
    /**
     * 保存topic,断开重连,重新订阅
     */
    private static Set<String> topicSet = new HashSet<>();

    /**
     * 初始化客户端,连接mqtt服务器
     */
    public static void init() {
   
   
        memoryPersistence = new MemoryPersistence();
        try {
   
   
            mqttClient = new MqttClient(Host, clientId, memoryPersistence);
        } catch (MqttException e) {
   
   
            e.printStackTrace();
        }
        mqttConnectOptions = new MqttConnectOptions();
        mqttConnectOptions.setCleanSession(false);
        mqttConnectOptions.setConnectionTimeout(30);
        mqttConnectOptions.setKeepAliveInterval(45);
        //设置自动重连
        mqttConnectOptions.setAutomaticReconnect(true)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值