From c42d391290adc50348807d623c4b689ab1f109fc Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 14 七月 2023 08:34:15 +0800
Subject: [PATCH] 修复数据存储
---
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 46 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 67f2e7e..ee31e96 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -24,8 +24,10 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
+import java.time.Duration;
import java.util.*;
@SuppressWarnings("rawtypes")
@@ -42,6 +44,9 @@
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
+
+ @Autowired
+ private StringRedisTemplate stringRedisTemplate;
@Override
public Long getCSEQ() {
@@ -185,7 +190,8 @@
redisTemplate.opsForValue().set(key, stream);
}else {
logger.debug("娣诲姞涓嬭浇缂撳瓨==鏈畬鎴愪笅杞�=銆媨}",key);
- redisTemplate.opsForValue().set(key, stream, 60*60);
+ Duration duration = Duration.ofSeconds(60*60L);
+ redisTemplate.opsForValue().set(key, stream, duration);
}
return true;
}
@@ -351,7 +357,8 @@
@Override
public void updatePlatformRegisterInfo(String callId, PlatformRegisterInfo platformRegisterInfo) {
String key = VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + callId;
- redisTemplate.opsForValue().set(key, platformRegisterInfo, 30);
+ Duration duration = Duration.ofSeconds(30L);
+ redisTemplate.opsForValue().set(key, platformRegisterInfo, duration);
}
@@ -562,13 +569,14 @@
@Override
public void updateWVPInfo(JSONObject jsonObject, int time) {
String key = VideoManagerConstants.WVP_SERVER_PREFIX + userSetting.getServerId();
- redisTemplate.opsForValue().set(key, jsonObject, time);
+ Duration duration = Duration.ofSeconds(time);
+ redisTemplate.opsForValue().set(key, jsonObject, duration);
}
@Override
public void sendStreamChangeMsg(String type, JSONObject jsonObject) {
String key = VideoManagerConstants.WVP_MSG_STREAM_CHANGE_PREFIX + type;
- logger.info("[redis 娴佸彉鍖栦簨浠禲 {}: {}", key, jsonObject.toString());
+ logger.info("[redis 娴佸彉鍖栦簨浠禲 鍙戦�� {}: {}", key, jsonObject.toString());
redisTemplate.convertAndSend(key, jsonObject);
}
@@ -694,7 +702,8 @@
@Override
public void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo) {
String key = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetting.getServerId() + "_" + gpsMsgInfo.getId();
- redisTemplate.opsForValue().set(key, gpsMsgInfo, 60); // 榛樿GPS娑堟伅淇濆瓨1鍒嗛挓
+ Duration duration = Duration.ofSeconds(60L);
+ redisTemplate.opsForValue().set(key, gpsMsgInfo, duration); // 榛樿GPS娑堟伅淇濆瓨1鍒嗛挓
}
@Override
@@ -841,14 +850,14 @@
@Override
public void sendMobilePositionMsg(JSONObject jsonObject) {
String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_MOBILE_POSITION;
- logger.info("[redis鍙戦�侀�氱煡] 绉诲姩浣嶇疆 {}: {}", key, jsonObject.toString());
+ logger.info("[redis鍙戦�侀�氱煡] 鍙戦�� 绉诲姩浣嶇疆 {}: {}", key, jsonObject.toString());
redisTemplate.convertAndSend(key, jsonObject);
}
@Override
public void sendStreamPushRequestedMsg(MessageForPushChannel msg) {
String key = VideoManagerConstants.VM_MSG_STREAM_PUSH_REQUESTED;
- logger.info("[redis鍙戦�侀�氱煡] 鎺ㄦ祦琚姹� {}: {}/{}", key, msg.getApp(), msg.getStream());
+ logger.info("[redis鍙戦�侀�氱煡] 鍙戦�� 鎺ㄦ祦琚姹� {}: {}/{}", key, msg.getApp(), msg.getStream());
redisTemplate.convertAndSend(key, JSON.toJSON(msg));
}
@@ -856,7 +865,7 @@
public void sendAlarmMsg(AlarmChannelMessage msg) {
// 姝ゆ秷鎭敤浜庡鎺ョ涓夋柟鏈嶅姟涓嬬骇鏉ョ殑娑堟伅鍐呭
String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_ALARM;
- logger.info("[redis鍙戦�侀�氱煡] 鎶ヨ{}: {}", key, JSON.toJSON(msg));
+ logger.info("[redis鍙戦�侀�氱煡] 鍙戦�� 鎶ヨ{}: {}", key, JSON.toJSON(msg));
redisTemplate.convertAndSend(key, JSON.toJSON(msg));
}
@@ -869,7 +878,7 @@
@Override
public void sendStreamPushRequestedMsgForStatus() {
String key = VideoManagerConstants.VM_MSG_GET_ALL_ONLINE_REQUESTED;
- logger.info("[redis閫氱煡]鑾峰彇鎵�鏈夋帹娴佽澶囩殑鐘舵��");
+ logger.info("[redis閫氱煡] 鍙戦�� 鑾峰彇鎵�鏈夋帹娴佽澶囩殑鐘舵��");
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, key);
redisTemplate.convertAndSend(key, jsonObject);
@@ -902,4 +911,32 @@
+ userSetting.getServerId() + "_*_" + id + "_*";
return RedisUtil.scan(redisTemplate, key).size();
}
+
+ @Override
+ public void sendDeviceOrChannelStatus(String deviceId, String channelId, boolean online) {
+ String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_DEVICE_STATUS;
+ logger.info("[redis閫氱煡] 鍙戦�� 鎺ㄩ�佽澶�/閫氶亾鐘舵�侊紝 {}/{}-{}", deviceId, channelId, online);
+ StringBuilder msg = new StringBuilder();
+ msg.append(deviceId);
+ if (channelId != null) {
+ msg.append(":").append(channelId);
+ }
+ msg.append(" ").append(online? "ON":"OFF");
+ // 浣跨敤 RedisTemplate<Object, Object> 鍙戦�佸瓧绗︿覆娑堟伅浼氬鑷村彂閫佺殑娑堟伅澶氬甫浜嗗弻寮曞彿
+ stringRedisTemplate.convertAndSend(key, msg.toString());
+ }
+
+ @Override
+ public void sendPlatformStartPlayMsg(MessageForPushChannel msg) {
+ String key = VideoManagerConstants.VM_MSG_STREAM_START_PLAY_NOTIFY;
+ logger.info("[redis鍙戦�侀�氱煡] 鍙戦�� 鎺ㄦ祦琚笂绾у钩鍙拌鐪� {}: {}/{}->{}", key, msg.getApp(), msg.getStream(), msg.getPlatFormId());
+ redisTemplate.convertAndSend(key, JSON.toJSON(msg));
+ }
+
+ @Override
+ public void sendPlatformStopPlayMsg(MessageForPushChannel msg) {
+ String key = VideoManagerConstants.VM_MSG_STREAM_STOP_PLAY_NOTIFY;
+ logger.info("[redis鍙戦�侀�氱煡] 鍙戦�� 涓婄骇骞冲彴鍋滄瑙傜湅 {}: {}/{}->{}", key, msg.getApp(), msg.getStream(), msg.getPlatFormId());
+ redisTemplate.convertAndSend(key, JSON.toJSON(msg));
+ }
}
--
Gitblit v1.8.0