From 8d6de7242957737e571f44503f686a8aa39e9b61 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 02 六月 2023 16:40:19 +0800
Subject: [PATCH] 优化日志

---
 src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java |   61 ++++++++++--------------------
 doc/_media/903207146.jpg                                              |    0 
 src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java  |   14 ++++--
 doc/README.md                                                         |   24 ++++++------
 doc/_media/1372762149.jpg                                             |    0 
 pom.xml                                                               |    2 
 README.md                                                             |    3 +
 7 files changed, 45 insertions(+), 59 deletions(-)

diff --git a/README.md b/README.md
index 572746d..10cd12a 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@
 ZLM浣跨敤鏂囨。 [https://github.com/ZLMediaKit/ZLMediaKit](https://github.com/ZLMediaKit/ZLMediaKit)
 > wvp鏂囨。鐢眊itee鎻愪緵鏈嶅姟锛屽鏋滈亣鍒版墦涓嶅紑璇峰鍒锋柊鍑犳銆�
 
-# 绀剧兢鍦板潃
+# 浠樿垂绀剧兢
 [![绀剧兢](doc/_media/shequ.png "shequ")](https://t.zsxq.com/0d8VAD3Dm)
 > 鏀惰垂鏄负浜嗘彁渚涙洿濂界殑鏈嶅姟锛屼篃鏄浣滆�呮洿澶х殑婵�鍔便�傚姞鍏ユ槦鐞冪殑鐢ㄦ埛涓夊ぉ鍚庡彲浠ョ淇℃垜鐣欎笅寰俊鍙凤紝鎴戜細鎷夊ぇ瀹跺叆缇ゃ�傚姞鍏ヤ笁澶╁唴涓嶆弧鎰忓彲浠ョ洿鎺ラ��娆撅紝澶у涓嶉渶瑕佹湁椤捐檻锛屾潵鐧藉珫涓夊ぉ涔熶笉鏄笉鍙互銆�
 
@@ -105,6 +105,7 @@
 - [X] 鏀寔鎵撳寘鍙墽琛宩ar鍜寃ar
 - [X] 鏀寔璺ㄥ煙璇锋眰锛屾敮鎸佸墠鍚庣鍒嗙閮ㄧ讲
 - [X] 鏀寔Mysql锛孭ostgresql锛岄噾浠撶瓑鏁版嵁搴�
+- [X] 鏀寔Onvif(鐩墠鍦╫nvif鍒嗘敮锛岄渶瑕佸畨瑁卭nvif鏈嶅姟锛屾湇鍔¤鍦ㄧ煡璇嗘槦鐞冭幏鍙�)
 
 # 鎺堟潈鍗忚
 鏈」鐩嚜鏈変唬鐮佷娇鐢ㄥ鏉剧殑MIT鍗忚锛屽湪淇濈暀鐗堟潈淇℃伅鐨勬儏鍐典笅鍙互鑷敱搴旂敤浜庡悇鑷晢鐢ㄣ�侀潪鍟嗕笟鐨勯」鐩�� 浣嗘槸鏈」鐩篃闆剁鐨勪娇鐢ㄤ簡涓�浜涘叾浠栫殑寮�婧愪唬鐮侊紝鍦ㄥ晢鐢ㄧ殑鎯呭喌涓嬭鑷鏇夸唬鎴栧墧闄わ紱 鐢变簬浣跨敤鏈」鐩�屼骇鐢熺殑鍟嗕笟绾犵悍鎴栦镜鏉冭涓轰竴姒備笌鏈」鐩強寮�鍙戣�呮棤鍏筹紝璇疯嚜琛屾壙鎷呮硶寰嬮闄┿�� 鍦ㄤ娇鐢ㄦ湰椤圭洰浠g爜鏃讹紝涔熷簲璇ュ湪鎺堟潈鍗忚涓悓鏃惰〃鏄庢湰椤圭洰渚濊禆鐨勭涓夋柟搴撶殑鍗忚
diff --git a/doc/README.md b/doc/README.md
index 3d2f09f..c2cbfba 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -14,7 +14,7 @@
 - 瀹屽叏寮�婧愶紝涓斾娇鐢∕IT璁稿彲鍗忚銆備繚鐣欑増鏉冪殑鎯呭喌涓嬪彲浠ョ敤浜庡晢涓氶」鐩��
 - 鏀寔澶氭祦濯掍綋鑺傜偣璐熻浇鍧囪 銆�
 
-# 绀剧兢
+# 浠樿垂绀剧兢
 [![绀剧兢](_media/shequ.png "shequ")](https://t.zsxq.com/0d8VAD3Dm)
 > 鏀惰垂鏄负浜嗘彁渚涙洿濂界殑鏈嶅姟锛屼篃鏄浣滆�呮洿澶х殑婵�鍔便�傚姞鍏ユ槦鐞冪殑鐢ㄦ埛涓夊ぉ鍚庡彲浠ョ淇℃垜鐣欎笅寰俊鍙凤紝鎴戜細鎷夊ぇ瀹跺叆缇ゃ�傚姞鍏ヤ笁澶╁唴涓嶆弧鎰忓彲浠ョ洿鎺ラ��娆撅紝澶у涓嶉渶瑕佹湁椤捐檻锛屾潵鐧藉珫涓夊ぉ涔熶笉鏄笉鍙互銆�
 
@@ -62,16 +62,16 @@
 - [X] 娉ㄥ唽
 - [X] 娉ㄩ攢
 - [X] 瀹炴椂瑙嗛煶棰戠偣鎾�
-- [ ] 璁惧鎺у埗
-  - [ ] 浜戝彴鎺у埗
+- [X] 璁惧鎺у埗
+  - [X] 浜戝彴鎺у埗
   - [ ] 杩滅▼鍚姩
-  - [ ] 褰曞儚鎺у埗
-  - [ ] 鎶ヨ甯冮槻/鎾ら槻
-  - [ ] 鎶ヨ澶嶄綅
-  - [ ] 寮哄埗鍏抽敭甯�
-  - [ ] 鎷夋鏀惧ぇ
-  - [ ] 鎷夋缂╁皬
-  - [ ] 鐪嬪畧浣嶆帶鍒�
+  - [X] 褰曞儚鎺у埗
+  - [X] 鎶ヨ甯冮槻/鎾ら槻
+  - [X] 鎶ヨ澶嶄綅
+  - [X] 寮哄埗鍏抽敭甯�
+  - [X] 鎷夋鏀惧ぇ
+  - [X] 鎷夋缂╁皬
+  - [X] 鐪嬪畧浣嶆帶鍒�
   - [ ] 璁惧閰嶇疆
 - [ ] 鎶ヨ浜嬩欢閫氱煡鍜屽垎鍙�
 - [X] 璁惧鐩綍璁㈤槄
@@ -79,7 +79,7 @@
   - [X] 璁惧鐩綍鏌ヨ
   - [X] 璁惧鐘舵�佹煡璇�
   - [ ] 璁惧閰嶇疆鏌ヨ
-  - [ ] 璁惧棰勭疆浣嶆煡璇�
+  - [X] 璁惧棰勭疆浣嶆煡璇�
 - [X] 鐘舵�佷俊鎭姤閫�
 - [X] 璁惧瑙嗛煶棰戞枃浠舵绱�
 - [X] 鍘嗗彶瑙嗛煶棰戠殑鍥炴斁
@@ -87,7 +87,7 @@
   - [x] 鏆傚仠
   - [x] 杩�/閫�
   - [x] 鍋滄
-- [ ] 瑙嗛煶棰戞枃浠朵笅杞�
+- [X] 瑙嗛煶棰戞枃浠朵笅杞�
 - [ ] ~~鏍℃椂~~
 - [X] 璁㈤槄鍜岄�氱煡
   - [X] 浜嬩欢璁㈤槄
diff --git a/doc/_media/1372762149.jpg b/doc/_media/1372762149.jpg
new file mode 100644
index 0000000..471ec07
--- /dev/null
+++ b/doc/_media/1372762149.jpg
Binary files differ
diff --git a/doc/_media/903207146.jpg b/doc/_media/903207146.jpg
new file mode 100644
index 0000000..0bbc7e6
--- /dev/null
+++ b/doc/_media/903207146.jpg
Binary files differ
diff --git a/pom.xml b/pom.xml
index bb0de72..2ecfad3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
 
 	<groupId>com.genersoft</groupId>
 	<artifactId>wvp-pro</artifactId>
-	<version>2.6.8</version>
+	<version>2.6.9</version>
 	<name>web video platform</name>
 	<description>鍥芥爣28181瑙嗛骞冲彴</description>
 	<packaging>${project.packaging}</packaging>
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java
index ec8e0ba..689f843 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/SSRCFactory.java
@@ -1,6 +1,7 @@
 package com.genersoft.iot.vmp.gb28181.session;
 
 import com.genersoft.iot.vmp.conf.SipConfig;
+import com.genersoft.iot.vmp.conf.UserSetting;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
@@ -31,10 +32,13 @@
     @Autowired
     private SipConfig sipConfig;
 
+    @Autowired
+    private UserSetting userSetting;
+
 
     public void initMediaServerSSRC(String mediaServerId, Set<String> usedSet) {
         String ssrcPrefix = sipConfig.getDomain().substring(3, 8);
-        String redisKey = SSRC_INFO_KEY + mediaServerId;
+        String redisKey = SSRC_INFO_KEY + userSetting.getServerId() + "_" + mediaServerId;
         List<String> ssrcList = new ArrayList<>();
         for (int i = 1; i < MAX_STREAM_COUNT; i++) {
             String ssrc = String.format("%s%04d", ssrcPrefix, i);
@@ -77,7 +81,7 @@
             return;
         }
         String sn = ssrc.substring(1);
-        String redisKey = SSRC_INFO_KEY + mediaServerId;
+        String redisKey = SSRC_INFO_KEY + userSetting.getServerId() + "_" + mediaServerId;
         redisTemplate.opsForSet().add(redisKey, sn);
     }
 
@@ -86,7 +90,7 @@
      */
     private String getSN(String mediaServerId) {
         String sn = null;
-        String redisKey = SSRC_INFO_KEY + mediaServerId;
+        String redisKey = SSRC_INFO_KEY + userSetting.getServerId() + "_" + mediaServerId;
         Long size = redisTemplate.opsForSet().size(redisKey);
         if (size == null || size == 0) {
             throw new RuntimeException("ssrc宸茬粡鐢ㄥ畬");
@@ -113,7 +117,7 @@
      * @param mediaServerId 娴佸獟浣撴湇鍔D
      */
     public boolean hasMediaServerSSRC(String mediaServerId) {
-        String redisKey = SSRC_INFO_KEY + mediaServerId;
+        String redisKey = SSRC_INFO_KEY + userSetting.getServerId() + "_" + mediaServerId;
         return redisTemplate.opsForSet().members(redisKey) != null;
     }
 
@@ -126,7 +130,7 @@
      */
     public boolean checkSsrc(String mediaServerId, String ssrc) {
         String sn = ssrc.substring(1);
-        String redisKey = SSRC_INFO_KEY + mediaServerId;
+        String redisKey = SSRC_INFO_KEY + userSetting.getServerId() + "_" + mediaServerId;
         return redisTemplate.opsForSet().isMember(redisKey, sn) != null;
     }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index f75a5fc..e6134f6 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -188,7 +188,20 @@
                     null);
             return;
         }
-        logger.info("[鐐规挱寮�濮媇 deviceId: {}, channelId: {},鏀舵祦绔彛锛歿}, 鏀舵祦妯″紡锛歿}, SSRC: {}, SSRC鏍¢獙锛歿}", device.getDeviceId(), channelId, ssrcInfo.getPort(), device.getStreamMode(), ssrcInfo.getSsrc(), device.isSsrcCheck());
+        logger.info("\r\n" +
+                " [鐐规挱寮�濮媇 \r\n" +
+                "deviceId  : {}, \r\n" +
+                "channelId : {},\r\n" +
+                "鏀舵祦绔彛    : {}, \r\n" +
+                "鏀舵祦妯″紡    : {}, \r\n" +
+                "SSRC      : {}, \r\n" +
+                "SSRC鏍¢獙   锛歿}",
+                device.getDeviceId(),
+                channelId,
+                ssrcInfo.getPort(),
+                device.getStreamMode(),
+                ssrcInfo.getSsrc(),
+                device.isSsrcCheck());
 
         //绔彛鑾峰彇澶辫触鐨剆srcInfo 娌℃湁蹇呰鍙戦�佺偣鎾寚浠�
         if (ssrcInfo.getPort() <= 0) {
@@ -329,23 +342,13 @@
                         return;
                     }
                     logger.info("[鐐规挱娑堟伅] 鏀跺埌invite 200, 鍙戠幇涓嬬骇鑷畾涔変簡ssrc: {}", ssrcInResponse);
+
                     if (!mediaServerItem.isRtpEnable() || device.isSsrcCheck()) {
                         logger.info("[鐐规挱娑堟伅] SSRC淇 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
-                        if (!ssrcFactory.checkSsrc(mediaServerItem.getId(),ssrcInResponse)) {
-                            // ssrc 涓嶅彲鐢�
-                            logger.info("[鐐规挱娑堟伅] SSRC淇鏃跺彂鐜皊src涓嶅彲浣跨敤 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
-                            // 閲婃斁ssrc
-                            ssrcFactory.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
-                            streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
 
-                            callback.run(InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getCode(),
-                                    InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getMsg(), null);
-                            inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channelId, null,
-                                    InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getCode(),
-                                    InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getMsg(), null);
+                        // 閲婃斁ssrc
+                        mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
 
-                            return;
-                        }
                         // 鍗曠鍙fā寮弒treamId涔熸湁鍙樺寲锛岄噸鏂拌缃洃鍚嵆鍙�
                         if (!mediaServerItem.isRtpEnable()) {
                             // 娣诲姞璁㈤槄
@@ -388,8 +391,6 @@
                             }
 
                             dynamicTask.stop(timeOutTaskKey);
-                            // 閲婃斁ssrc
-                            mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
 
                             streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
 
@@ -654,17 +655,8 @@
                             if (!mediaServerItem.isRtpEnable() || device.isSsrcCheck()) {
                                 logger.info("[褰曞儚鍥炴斁] SSRC淇 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
 
-                                if (!ssrcFactory.checkSsrc(mediaServerItem.getId(),ssrcInResponse)) {
-                                    // ssrc 涓嶅彲鐢�
-                                    logger.info("[褰曞儚鍥炴斁] SSRC淇鏃跺彂鐜皊src涓嶅彲浣跨敤 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
-                                    // 閲婃斁ssrc
-                                    dynamicTask.stop(playBackTimeOutTaskKey);
-                                    mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
-                                    streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
-                                    callback.run(InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getCode(),
-                                            InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getMsg(), null);
-                                    return;
-                                }
+                                // 閲婃斁ssrc
+                                mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
 
                                 // 鍗曠鍙fā寮弒treamId涔熸湁鍙樺寲锛岄渶瑕侀噸鏂拌缃洃鍚�
                                 if (!mediaServerItem.isRtpEnable()) {
@@ -693,8 +685,6 @@
                                     }
 
                                     dynamicTask.stop(playBackTimeOutTaskKey);
-                                    // 閲婃斁ssrc
-                                    mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
 
                                     streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
 
@@ -858,15 +848,8 @@
                             if (!mediaServerItem.isRtpEnable() || device.isSsrcCheck()) {
                                 logger.info("[褰曞儚涓嬭浇] SSRC淇 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
 
-                                if (!ssrcFactory.checkSsrc(mediaServerItem.getId(),ssrcInResponse)) {
-                                    // ssrc 涓嶅彲鐢�
-                                    // 閲婃斁ssrc
-                                    mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
-                                    streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
-                                    callback.run(InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getCode(),
-                                            InviteErrorCode.ERROR_FOR_SSRC_UNAVAILABLE.getMsg(), null);
-                                    return;
-                                }
+                                // 閲婃斁ssrc
+                                mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
 
                                 // 鍗曠鍙fā寮弒treamId涔熸湁鍙樺寲锛岄渶瑕侀噸鏂拌缃洃鍚�
                                 if (!mediaServerItem.isRtpEnable()) {
@@ -892,8 +875,6 @@
                                     }
 
                                     dynamicTask.stop(downLoadTimeOutTaskKey);
-                                    // 閲婃斁ssrc
-                                    mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
 
                                     streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
 

--
Gitblit v1.8.0