From 4b9549dfbf55d8af415efe609623e9d19dd6e6d4 Mon Sep 17 00:00:00 2001
From: Lawrence <1934378145@qq.com>
Date: 星期四, 21 一月 2021 19:57:57 +0800
Subject: [PATCH] 添加浏览器ID,确保SSE可同时推送到不同的前端
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 43 +++++++++++++++++++++++++++++++++----------
1 files changed, 33 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
index c5ae4f5..73e67e5 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -21,6 +21,7 @@
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.gb28181.bean.Device;
+import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.RecordInfo;
import com.genersoft.iot.vmp.gb28181.bean.RecordItem;
@@ -289,19 +290,41 @@
// storager.queryChannel(deviceId)
return;
}
- device.setName(XmlUtil.getText(rootElement, "DeviceName"));
- device.setManufacturer(XmlUtil.getText(rootElement, "Manufacturer"));
- device.setModel(XmlUtil.getText(rootElement, "Model"));
- device.setFirmware(XmlUtil.getText(rootElement, "Firmware"));
- if (StringUtils.isEmpty(device.getStreamMode())) {
- device.setStreamMode("UDP");
+
+ DeviceAlarm deviceAlarm = new DeviceAlarm();
+ deviceAlarm.setDeviceId(deviceId);
+ deviceAlarm.setAlarmPriority(XmlUtil.getText(rootElement, "AlarmPriority"));
+ deviceAlarm.setAlarmMethod(XmlUtil.getText(rootElement, "AlarmMethod"));
+ deviceAlarm.setAlarmTime(XmlUtil.getText(rootElement, "AlarmTime"));
+ if (XmlUtil.getText(rootElement, "AlarmDescription") == null) {
+ deviceAlarm.setAlarmDescription("");
+ } else {
+ deviceAlarm.setAlarmDescription(XmlUtil.getText(rootElement, "AlarmDescription"));
}
- storager.updateDevice(device);
+ if (XmlUtil.getText(rootElement, "Longitude") == null || XmlUtil.getText(rootElement, "Longitude") == "") {
+ deviceAlarm.setLongitude(0.00);
+ } else {
+ deviceAlarm.setLongitude(Double.parseDouble(XmlUtil.getText(rootElement, "Longitude")));
+ }
+ if (XmlUtil.getText(rootElement, "Latitude") == null || XmlUtil.getText(rootElement, "Latitude") =="") {
+ deviceAlarm.setLatitude(0.00);
+ } else {
+ deviceAlarm.setLatitude(Double.parseDouble(XmlUtil.getText(rootElement, "Latitude")));
+ }
+
+ // device.setName(XmlUtil.getText(rootElement, "DeviceName"));
+ // device.setManufacturer(XmlUtil.getText(rootElement, "Manufacturer"));
+ // device.setModel(XmlUtil.getText(rootElement, "Model"));
+ // device.setFirmware(XmlUtil.getText(rootElement, "Firmware"));
+ // if (StringUtils.isEmpty(device.getStreamMode())) {
+ // device.setStreamMode("UDP");
+ // }
+ // storager.updateDevice(device);
//cmder.catalogQuery(device, null);
// 鍥炲200 OK
responseAck(evt);
if (offLineDetector.isOnline(deviceId)) {
- publisher.onlineEventPublish(deviceId, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
+ publisher.deviceAlarmEventPublish(deviceAlarm);
}
} catch (DocumentException | SipException | InvalidArgumentException | ParseException e) {
// } catch (DocumentException e) {
@@ -342,7 +365,7 @@
try {
// 鍥炲200 OK
responseAck(evt);
- String seqNo = String.valueOf(System.currentTimeMillis());
+ String uuid = UUID.randomUUID().toString().replace("-", "");
RecordInfo recordInfo = new RecordInfo();
Element rootElement = getRootElement(evt);
Element deviceIdElement = rootElement.element("DeviceID");
@@ -398,7 +421,7 @@
// 涓洪槻姝㈣繛缁姹傝璁惧鐨勫綍鍍忔暟鎹紝杩斿洖鏁版嵁閿欎贡锛岀壒澧炲姞sn杩涜鍖哄垎
String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn;
- redis.set(cacheKey + "_" + seqNo, recordList, 90);
+ redis.set(cacheKey + "_" + uuid, recordList, 90);
List<Object> cacheKeys = redis.scan(cacheKey + "_*");
List<RecordItem> totalRecordList = new ArrayList<RecordItem>();
for (int i = 0; i < cacheKeys.size(); i++) {
--
Gitblit v1.8.0