From f3454caaf6241c44e82704711a3a1efe264f400f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 25 十月 2022 14:43:12 +0800
Subject: [PATCH] Merge pull request #647 from L120820/wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index cdaa7e6..716f1df 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -10,6 +10,8 @@
 
 import com.genersoft.iot.vmp.conf.DynamicTask;
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
+import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
+import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -89,6 +91,9 @@
 
     @Autowired
     private DynamicTask dynamicTask;
+
+    @Autowired
+    private IRedisCatchStorage redisCatchStorage;
 
     /**
      * 鍒濆鍖�
@@ -650,7 +655,12 @@
                 return;
             }
             // zlm杩炴帴閲嶈瘯
-            logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]灏濊瘯閾炬帴榛樿zml");
+            logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]灏濊瘯閾炬帴zml id {}", mediaServerId);
+            SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain());
+            mediaServerItem.setSsrcConfig(ssrcConfig);
+            String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId();
+            RedisUtil.set(key, mediaServerItem);
+            clearRTPServer(mediaServerItem);
         }
         final String zlmKeepaliveKey = zlmKeepaliveKeyPrefix + mediaServerItem.getId();
         dynamicTask.stop(zlmKeepaliveKey);
@@ -685,4 +695,15 @@
         }
         return false;
     }
+
+    @Override
+    public MediaServerLoad getLoad(MediaServerItem mediaServerItem) {
+        MediaServerLoad result = new MediaServerLoad();
+        result.setId(mediaServerItem.getId());
+        result.setPush(redisCatchStorage.getPushStreamCount(mediaServerItem.getId()));
+        result.setProxy(redisCatchStorage.getProxyStreamCount(mediaServerItem.getId()));
+        result.setGbReceive(redisCatchStorage.getGbReceiveCount(mediaServerItem.getId()));
+        result.setGbSend(redisCatchStorage.getGbSendCount(mediaServerItem.getId()));
+        return result;
+    }
 }

--
Gitblit v1.8.0