From e9a19e94e98e5a4473ca6e1cdfbd9f9906697d3e Mon Sep 17 00:00:00 2001 From: liuyibo <14460729+liuyibo12345@user.noreply.gitee.com> Date: Sat, 28 Sep 2024 12:28:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5MQTT,=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E7=9A=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WarnLogsController.java | 2 + .../controller/WarnRuleController.java | 2 + .../controller/WarnStrategyController.java | 2 + .../mapper/{warm => warn}/CarTypeMapper.xml | 0 .../{warm => warn}/WarnStrategyMapper.xml | 0 .../cloud-modules-vehicle-gateway/pom.xml | 100 ++++++++++++++++++ .../src/main/java/com/muyu/demo.java | 57 ++++++++++ .../controller/VehicleGatewayController.java | 80 ++++++++++++++ cloud-modules/pom.xml | 1 + 9 files changed, 244 insertions(+) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/{warm => warn}/CarTypeMapper.xml (100%) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/{warm => warn}/WarnStrategyMapper.xml (100%) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/pom.xml create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java index 43c91e1..d2ebcfe 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnLogsController.java @@ -7,6 +7,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.enterprise.domain.WarnLogs; import com.muyu.enterprise.service.IWarnLogsService; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -23,6 +24,7 @@ import java.util.List; */ @RestController @RequestMapping("/logs") +@Tag(name = "车辆预警日志",description = "用来记录车辆预警的日志") public class WarnLogsController extends BaseController { @Resource diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java index 3918766..16021da 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnRuleController.java @@ -8,6 +8,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.enterprise.domain.WarnRule; import com.muyu.enterprise.service.IWarnRuleService; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -24,6 +25,7 @@ import java.util.List; */ @RestController @RequestMapping("/rule") +@Tag(name = "车辆预警规则",description = "用来客户添加或者修改规则") public class WarnRuleController extends BaseController { @Resource diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java index 900a267..0a4a5c3 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/WarnStrategyController.java @@ -7,6 +7,7 @@ import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.enterprise.domain.resp.WarnStrategy; import com.muyu.enterprise.service.IWarnStrategyService; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -23,6 +24,7 @@ import java.util.List; */ @RestController @RequestMapping("/strategy") +@Tag(name = "故障策略",description = "故障策略对应车辆类型用来客户选择") public class WarnStrategyController extends BaseController { @Resource diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/CarTypeMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/CarTypeMapper.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/CarTypeMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/CarTypeMapper.xml diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/WarnStrategyMapper.xml b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/WarnStrategyMapper.xml similarity index 100% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warm/WarnStrategyMapper.xml rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/resources/mapper/warn/WarnStrategyMapper.xml diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml new file mode 100644 index 0000000..be13d07 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -0,0 +1,100 @@ + + + + com.muyu + cloud-modules + 3.6.3 + + 3.6.3 + 4.0.0 + + cloud-modules-vehicle-gateway + + + cloud-modules-vehicle-gateway系统模块 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java new file mode 100644 index 0000000..50e2aba --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/demo.java @@ -0,0 +1,57 @@ +package com.muyu; + +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; + +/** + * @ClassName demo + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/27 22:27 + */ +public class demo { + + public static void main(String[] args) { + + String topic = "vehicle"; + String content = "Message from MqttPublishSample"; + int qos = 2; + String broker = "tcp://106.15.136.7:1883"; + String clientId = "JavaSample"; + + try { + // 第三个参数为空,默认持久化策略 + MqttClient sampleClient = new MqttClient(broker, clientId); + MqttConnectOptions connOpts = new MqttConnectOptions(); + connOpts.setCleanSession(true); + System.out.println("Connecting to broker: "+broker); + sampleClient.connect(connOpts); + sampleClient.subscribe(topic,0); + sampleClient.setCallback(new MqttCallback() { + // 连接丢失 + @Override + public void connectionLost(Throwable throwable) { + + } + // 连接成功 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println(new String(mqttMessage.getPayload())); + } + // 接收信息 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + } catch(MqttException me) { + System.out.println("reason "+me.getReasonCode()); + System.out.println("msg "+me.getMessage()); + System.out.println("loc "+me.getLocalizedMessage()); + System.out.println("cause "+me.getCause()); + System.out.println("excep "+me); + me.printStackTrace(); + } + } + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java new file mode 100644 index 0000000..2178472 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehicleGateway/controller/VehicleGatewayController.java @@ -0,0 +1,80 @@ +package com.muyu.vehicleGateway.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName VehicleGatewayController + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/27 20:02 + */ +@RequestMapping("/vehicleGateway") +@RestController +@Tag(name = "车辆网关",description = "车辆网关管理负载中心") +public class VehicleGatewayController { + + + @PostMapping("/MqttPublishSample") + public static void MqttPublishSample(){ + //定义MQTT主题 + String topic = "vehicle"; + //定义要发布的消息内容 + String content = "Message from MqttPublishSample"; + //定义消息服务质量(qos)等级 + int qos = 2; + //定义MQTT代理服务器地址 + String broker = "tcp://127.0.0.1:1883"; + //定义客户端标识符 + String clientId = "JavaSample"; + //创建MemoryPersistence对象,用于消息的内存持久性 + MemoryPersistence persistence = new MemoryPersistence(); + + try{ + //创建MqttClient实例,连接到MQTT代理服务器 + MqttClient sampleClient = new MqttClient(broker,clientId); + + //创建MqttConnectOptions对象,用于配置连接选项 + MqttConnectOptions connOpts = new MqttConnectOptions(); + //设置CleanSession为true,标识每个连接都是一个全新的会话 + connOpts.setCleanSession(true); + //打印连接信息 + System.out.println("Connecting to broker: " + broker); + + sampleClient.connect(connOpts); + sampleClient.subscribe(topic,0); + sampleClient.setCallback(new MqttCallback() { + + //连接报错 + @Override + public void connectionLost(Throwable throwable) { + + } + //接收到消息 + @Override + public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + System.out.println(new String(mqttMessage.getPayload())); + } + //消费完成 + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + + } + }); + } catch(MqttException me) { + System.out.println("reason "+me.getReasonCode()); + System.out.println("msg "+me.getMessage()); + System.out.println("loc "+me.getLocalizedMessage()); + System.out.println("cause "+me.getCause()); + System.out.println("excep "+me); + me.printStackTrace(); + + } + + } + +} diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index cd65b6b..86c07de 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -14,6 +14,7 @@ cloud-modules-file cloud-modules-enterprise cloud-weixin-mp + cloud-modules-vehicle-gateway cloud-modules