From a3649ca243f827f78b85dbb41af2c3d7d978aa89 Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期二, 27 四月 2021 15:38:00 +0800
Subject: [PATCH] 优化mysql建库脚本
---
src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 26 +++++++++++++++++++-------
1 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
index c69faf9..5ea57c1 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
@@ -15,6 +15,8 @@
public class VideoStreamSessionManager {
private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>();
+ private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>();
+ private ConcurrentHashMap<String, String> streamIdMap = new ConcurrentHashMap<>();
public String createPlaySsrc(){
return SsrcUtil.getPlaySsrc();
@@ -24,16 +26,26 @@
return SsrcUtil.getPlayBackSsrc();
}
- public void put(String ssrc,ClientTransaction transaction){
- sessionMap.put(ssrc, transaction);
+ public void put(String deviceId, String channelId ,String ssrc, String streamId, ClientTransaction transaction){
+ sessionMap.put(deviceId + "_" + channelId, transaction);
+ ssrcMap.put(deviceId + "_" + channelId, ssrc);
+ streamIdMap.put(deviceId + "_" + channelId, streamId);
}
- public ClientTransaction get(String ssrc){
- return sessionMap.get(ssrc);
+ public ClientTransaction getTransaction(String deviceId, String channelId){
+ return sessionMap.get(deviceId + "_" + channelId);
+ }
+
+ public String getStreamId(String deviceId, String channelId){
+ return streamIdMap.get(deviceId + "_" + channelId);
}
- public void remove(String ssrc) {
- sessionMap.remove(ssrc);
- SsrcUtil.releaseSsrc(ssrc);
+ public void remove(String deviceId, String channelId) {
+ sessionMap.remove(deviceId + "_" + channelId);
+ if (ssrcMap.get(deviceId + "_" + channelId) != null) {
+ SsrcUtil.releaseSsrc(ssrcMap.get(deviceId + "_" + channelId));
+ }
+ ssrcMap.remove(deviceId + "_" + channelId);
+ streamIdMap.remove(deviceId + "_" + channelId);
}
}
--
Gitblit v1.8.0