|
@@ -2,10 +2,6 @@ package com.ozs.service.utils;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
-import com.alibaba.fastjson2.filter.Filter;
|
|
|
-import com.alibaba.fastjson2.filter.SimplePropertyPreFilter;
|
|
|
-import com.ozs.common.utils.sign.Md5Utils;
|
|
|
-import com.ozs.common.utils.stateSecrets.SM4Utils;
|
|
|
import com.ozs.common.utils.uuid.IdUtils;
|
|
|
import com.ozs.service.entity.BaseCameraManagement;
|
|
|
import com.ozs.service.entity.vo.*;
|
|
@@ -19,14 +15,13 @@ import org.eclipse.paho.client.mqttv3.MqttPersistenceException;
|
|
|
import org.eclipse.paho.client.mqttv3.MqttTopic;
|
|
|
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
+import java.security.SecureRandom;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
-import java.util.UUID;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -52,6 +47,8 @@ public class PublishClient {
|
|
|
@Autowired
|
|
|
private RabbitMqConfig rabbitMqConfig;
|
|
|
|
|
|
+ private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
|
+ private static final int CLIENT_ID_LENGTH = 23;
|
|
|
/**
|
|
|
* 获取 MqttTopic
|
|
|
*/
|
|
@@ -118,7 +115,7 @@ public class PublishClient {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
res.put("device_sn", "11");
|
|
|
res.put("sign", "rate" + IdUtils.fastSimpleUUID());
|
|
|
- map.put("codec",codec);
|
|
|
+ map.put("codec", codec);
|
|
|
res.put("data", map);
|
|
|
String s = JSONObject.toJSONString(res);
|
|
|
|
|
@@ -169,81 +166,81 @@ public class PublishClient {
|
|
|
/**
|
|
|
* 发布客户端
|
|
|
*/
|
|
|
- try {
|
|
|
- JSONObject res = new JSONObject();
|
|
|
- res.put("Name", "HeartRequest");
|
|
|
- Codec codec = new Codec();
|
|
|
- Venc venc = new Venc();
|
|
|
- venc.setFps(Double.valueOf(value));
|
|
|
- ArrayList<Venc> vencList = new ArrayList<>();
|
|
|
- vencList.add(venc);
|
|
|
- codec.setVenc(vencList);
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- res.put("device_sn", baseCameraManagement.getCameraSn());
|
|
|
- res.put("sign", "rate" + IdUtils.fastSimpleUUID());
|
|
|
- map.put("codec",codec);
|
|
|
- res.put("data", map);
|
|
|
- String s = JSONObject.toJSONString(res);
|
|
|
+ try {
|
|
|
+ JSONObject res = new JSONObject();
|
|
|
+ res.put("Name", "HeartRequest");
|
|
|
+ Codec codec = new Codec();
|
|
|
+ Venc venc = new Venc();
|
|
|
+ venc.setFps(Double.valueOf(value));
|
|
|
+ ArrayList<Venc> vencList = new ArrayList<>();
|
|
|
+ vencList.add(venc);
|
|
|
+ codec.setVenc(vencList);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ res.put("device_sn", baseCameraManagement.getCameraSn());
|
|
|
+ res.put("sign", "rate" + IdUtils.fastSimpleUUID());
|
|
|
+ map.put("codec", codec);
|
|
|
+ res.put("data", map);
|
|
|
+ String s = JSONObject.toJSONString(res);
|
|
|
|
|
|
- MqttMessage message = new MqttMessage();
|
|
|
- /**
|
|
|
- * 保证消息能到达一次
|
|
|
- */
|
|
|
- message.setQos(1);
|
|
|
- /**
|
|
|
- * 消息保留
|
|
|
- */
|
|
|
+ MqttMessage message = new MqttMessage();
|
|
|
+ /**
|
|
|
+ * 保证消息能到达一次
|
|
|
+ */
|
|
|
+ message.setQos(1);
|
|
|
+ /**
|
|
|
+ * 消息保留
|
|
|
+ */
|
|
|
// message.setRetained(false);
|
|
|
- /**
|
|
|
- * 消息内容
|
|
|
- */
|
|
|
- message.setPayload(s.getBytes());
|
|
|
- /**
|
|
|
- * 发布
|
|
|
- */
|
|
|
- publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
|
|
|
- } catch (MqttException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 消息内容
|
|
|
+ */
|
|
|
+ message.setPayload(s.getBytes());
|
|
|
+ /**
|
|
|
+ * 发布
|
|
|
+ */
|
|
|
+ publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
|
|
|
+ } catch (MqttException e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- public static void configFrameRate(BaseCameraManagement baseCameraManagement,Integer mode) {
|
|
|
+ public static void configFrameRate(BaseCameraManagement baseCameraManagement, Integer mode) {
|
|
|
/**
|
|
|
* 发布客户端
|
|
|
*/
|
|
|
- try {
|
|
|
- JSONObject res = new JSONObject();
|
|
|
- res.put("Name", "HeartRequest");
|
|
|
- Codec codec = new Codec();
|
|
|
- Day2night day2night = new Day2night();
|
|
|
- day2night.setMode(mode);
|
|
|
- codec.setDay2night(day2night);
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- res.put("device_sn", baseCameraManagement.getCameraSn());
|
|
|
- res.put("sign", "rate" + IdUtils.fastSimpleUUID());
|
|
|
- map.put("codec",codec);
|
|
|
- res.put("data", map);
|
|
|
- String s = JSONObject.toJSONString(res);
|
|
|
- MqttMessage message = new MqttMessage();
|
|
|
- /**
|
|
|
- * 保证消息能到达一次
|
|
|
- */
|
|
|
- message.setQos(1);
|
|
|
- /**
|
|
|
- * 消息保留
|
|
|
- */
|
|
|
+ try {
|
|
|
+ JSONObject res = new JSONObject();
|
|
|
+ res.put("Name", "HeartRequest");
|
|
|
+ Codec codec = new Codec();
|
|
|
+ Day2night day2night = new Day2night();
|
|
|
+ day2night.setMode(mode);
|
|
|
+ codec.setDay2night(day2night);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ res.put("device_sn", baseCameraManagement.getCameraSn());
|
|
|
+ res.put("sign", "rate" + IdUtils.fastSimpleUUID());
|
|
|
+ map.put("codec", codec);
|
|
|
+ res.put("data", map);
|
|
|
+ String s = JSONObject.toJSONString(res);
|
|
|
+ MqttMessage message = new MqttMessage();
|
|
|
+ /**
|
|
|
+ * 保证消息能到达一次
|
|
|
+ */
|
|
|
+ message.setQos(1);
|
|
|
+ /**
|
|
|
+ * 消息保留
|
|
|
+ */
|
|
|
// message.setRetained(false);
|
|
|
- /**
|
|
|
- * 消息内容
|
|
|
- */
|
|
|
- message.setPayload(s.getBytes());
|
|
|
- /**
|
|
|
- * 发布
|
|
|
- */
|
|
|
- publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
|
|
|
- } catch (MqttException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 消息内容
|
|
|
+ */
|
|
|
+ message.setPayload(s.getBytes());
|
|
|
+ /**
|
|
|
+ * 发布
|
|
|
+ */
|
|
|
+ publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
|
|
|
+ } catch (MqttException e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@PostConstruct
|
|
@@ -308,7 +305,7 @@ public class PublishClient {
|
|
|
/**
|
|
|
* 设置发布回调
|
|
|
*/
|
|
|
- client = new MqttClient("tcp://10.161.12.60:1883", "HAZARD-CAMERA-CLIENTID-123", new MemoryPersistence());
|
|
|
+ client = new MqttClient("tcp://10.161.12.60:1883", generateClientId(), new MemoryPersistence());
|
|
|
|
|
|
client.setCallback(new PublishCallback());
|
|
|
client.connect(options);
|
|
@@ -320,4 +317,18 @@ public class PublishClient {
|
|
|
}
|
|
|
log.error("重连成功!");
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static String generateClientId() {
|
|
|
+ StringBuilder clientId = new StringBuilder(CLIENT_ID_LENGTH);
|
|
|
+ SecureRandom random = new SecureRandom();
|
|
|
+
|
|
|
+ for (int i = 0; i < CLIENT_ID_LENGTH; i++) {
|
|
|
+ int index = random.nextInt(CHARACTERS.length());
|
|
|
+ clientId.append(CHARACTERS.charAt(index));
|
|
|
+ }
|
|
|
+
|
|
|
+ return clientId.toString();
|
|
|
+ }
|
|
|
}
|