浏览代码

MQ代码开发

gao.qiang 2 年之前
父节点
当前提交
4a6acd54db

+ 16 - 0
business-service/src/main/java/com/ozs/service/entity/vo/UpdateDeviceSn.java

@@ -0,0 +1,16 @@
+package com.ozs.service.entity.vo;
+
+
+import lombok.Data;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class UpdateDeviceSn {
+    private String Name;
+    private Integer type;
+    private String md5;
+    private String url;
+    private String sign;
+}

+ 36 - 2
business-service/src/main/java/com/ozs/service/utils/PublishClient.java

@@ -3,6 +3,7 @@ package com.ozs.service.utils;
 import com.alibaba.fastjson2.JSON;
 import com.ozs.service.entity.vo.Data;
 import com.ozs.service.entity.vo.Heartbeat;
+import com.ozs.service.entity.vo.UpdateDeviceSn;
 import org.eclipse.paho.client.mqttv3.MqttClient;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 import org.eclipse.paho.client.mqttv3.MqttDeliveryToken;
@@ -121,8 +122,6 @@ public class PublishClient {
         test.setCode(200);
         test.setSign(sign);
         String s = JSON.toJSONString(test);
-
-
         server.message = new MqttMessage();
         /**
          * 保证消息能到达一次
@@ -141,4 +140,39 @@ public class PublishClient {
          */
         server.publish(server.topic11, server.message);
     }
+
+    public static void updateDeviceSn(String sign){
+        /**
+         * 发布客户端
+         */
+        try {
+            PublishClient server = new PublishClient(sign,sign);
+            UpdateDeviceSn updateDeviceSn = new UpdateDeviceSn();
+            updateDeviceSn.setName("UpdateRequest");
+            updateDeviceSn.setType(0);
+            updateDeviceSn.setMd5("b867d0e545d9abbf74c2d11b62798250");
+            updateDeviceSn.setSign("b867d0e545d9abbf74c2d11b62798250");
+            updateDeviceSn.setUrl("https://example.com/download/Model_Helmet2_V213_P_c69cbfa9d7de4234f76d6f3811986e3a.bovai");
+            String s = JSON.toJSONString(updateDeviceSn);
+            server.message = new MqttMessage();
+            /**
+             * 保证消息能到达一次
+             */
+            server.message.setQos(1);
+            /**
+             * 消息保留
+             */
+            server.message.setRetained(true);
+            /**
+             * 消息内容
+             */
+            server.message.setPayload(s.getBytes());
+            /**
+             * 发布
+             */
+            server.publish(server.topic11, server.message);
+        } catch (MqttException e) {
+            System.out.println(e.getMessage());
+        }
+    }
 }

+ 5 - 2
hazard-admin/src/main/java/com/ozs/web/controller/mqtt/MqttController.java

@@ -4,9 +4,11 @@ package com.ozs.web.controller.mqtt;
 import com.ozs.common.annotation.Log;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.enums.BusinessType;
+import com.ozs.service.utils.PublishClient;
 import com.ozs.service.utils.SubscribeClient;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.eclipse.paho.client.mqttv3.MqttException;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -32,8 +34,9 @@ public class MqttController {
     @ApiOperation(value = "更新固件和算法")
     @GetMapping("/updateDeviceSn")
     @Log(title = "MQTT", businessType = BusinessType.UPDATE)
-    public AjaxResult updateDeviceSn() {
-        new SubscribeClient("update_DEVICESN","update_DEVICESN").start();
+    public AjaxResult updateDeviceSn(){
+        PublishClient.updateDeviceSn("update_DEVICESN");
+        new SubscribeClient("update","update").start();
         return AjaxResult.success();
     }
 }