From 42a2772d1aa7493bcc4fac3e24ee8eda4eebc23d Mon Sep 17 00:00:00 2001
From: xubinbin <1323875150@qq.com>
Date: 星期二, 12 十二月 2023 17:09:04 +0800
Subject: [PATCH] bugfix:请求头带token, SecurityUtils 获取用户id 一直为0 #1195

---
 src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java |  297 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 264 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
index 20a286c..70718c7 100644
--- a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
+++ b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
@@ -2,10 +2,11 @@
 
 import io.swagger.v3.oas.annotations.media.Schema;
 
-import java.net.URL;
+import java.io.Serializable;
+import java.util.Objects;
 
 @Schema(description = "娴佷俊鎭�")
-public class StreamInfo {
+public class StreamInfo implements Serializable, Cloneable{
 
     @Schema(description = "搴旂敤鍚�")
     private String app;
@@ -79,27 +80,121 @@
     @Schema(description = "鏄惁鏆傚仠锛堝綍鍍忓洖鏀句娇鐢級")
     private boolean pause;
 
+    public void setFlv(StreamURL flv) {
+        this.flv = flv;
+    }
+
+    public void setHttps_flv(StreamURL https_flv) {
+        this.https_flv = https_flv;
+    }
+
+    public void setWs_flv(StreamURL ws_flv) {
+        this.ws_flv = ws_flv;
+    }
+
+    public void setWss_flv(StreamURL wss_flv) {
+        this.wss_flv = wss_flv;
+    }
+
+    public void setFmp4(StreamURL fmp4) {
+        this.fmp4 = fmp4;
+    }
+
+    public void setHttps_fmp4(StreamURL https_fmp4) {
+        this.https_fmp4 = https_fmp4;
+    }
+
+    public void setWs_fmp4(StreamURL ws_fmp4) {
+        this.ws_fmp4 = ws_fmp4;
+    }
+
+    public void setWss_fmp4(StreamURL wss_fmp4) {
+        this.wss_fmp4 = wss_fmp4;
+    }
+
+    public void setHls(StreamURL hls) {
+        this.hls = hls;
+    }
+
+    public void setHttps_hls(StreamURL https_hls) {
+        this.https_hls = https_hls;
+    }
+
+    public void setWs_hls(StreamURL ws_hls) {
+        this.ws_hls = ws_hls;
+    }
+
+    public void setWss_hls(StreamURL wss_hls) {
+        this.wss_hls = wss_hls;
+    }
+
+    public void setTs(StreamURL ts) {
+        this.ts = ts;
+    }
+
+    public void setHttps_ts(StreamURL https_ts) {
+        this.https_ts = https_ts;
+    }
+
+    public void setWs_ts(StreamURL ws_ts) {
+        this.ws_ts = ws_ts;
+    }
+
+    public void setWss_ts(StreamURL wss_ts) {
+        this.wss_ts = wss_ts;
+    }
+
+    public void setRtmp(StreamURL rtmp) {
+        this.rtmp = rtmp;
+    }
+
+    public void setRtmps(StreamURL rtmps) {
+        this.rtmps = rtmps;
+    }
+
+    public void setRtsp(StreamURL rtsp) {
+        this.rtsp = rtsp;
+    }
+
+    public void setRtsps(StreamURL rtsps) {
+        this.rtsps = rtsps;
+    }
+
+    public void setRtc(StreamURL rtc) {
+        this.rtc = rtc;
+    }
+
+    public void setRtcs(StreamURL rtcs) {
+        this.rtcs = rtcs;
+    }
+
     public void setRtmp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
-        String file = String.format("%s/%s/%s", app, stream, callIdParam);
-        this.rtmp = new StreamURL("rtmp", host, port, file);
-        if (sslPort != 0) {
+        String file = String.format("%s/%s%s", app, stream, callIdParam);
+        if (port > 0) {
+            this.rtmp = new StreamURL("rtmp", host, port, file);
+        }
+        if (sslPort > 0) {
             this.rtmps = new StreamURL("rtmps", host, sslPort, file);
         }
     }
 
     public void setRtsp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
-        String file = String.format("%s/%s/%s", app, stream, callIdParam);
-        this.rtsp = new StreamURL("rtsp", host, port, file);
-        if (sslPort != 0) {
+        String file = String.format("%s/%s%s", app, stream, callIdParam);
+        if (port > 0) {
+            this.rtsp = new StreamURL("rtsp", host, port, file);
+        }
+        if (sslPort > 0) {
             this.rtsps = new StreamURL("rtsps", host, sslPort, file);
         }
     }
 
     public void setFlv(String host, int port, int sslPort, String app, String stream, String callIdParam) {
         String file = String.format("%s/%s.live.flv%s", app, stream, callIdParam);
-        this.flv = new StreamURL("http", host, port, file);
+        if (port > 0) {
+            this.flv = new StreamURL("http", host, port, file);
+        }
         this.ws_flv = new StreamURL("ws", host, port, file);
-        if (sslPort != 0) {
+        if (sslPort > 0) {
             this.https_flv = new StreamURL("https", host, sslPort, file);
             this.wss_flv = new StreamURL("wss", host, sslPort, file);
         }
@@ -107,9 +202,11 @@
 
     public void setFmp4(String host, int port, int sslPort, String app, String stream, String callIdParam) {
         String file = String.format("%s/%s.live.mp4%s", app, stream, callIdParam);
-        this.fmp4 = new StreamURL("http", host, port, file);
-        this.ws_fmp4 = new StreamURL("ws", host, port, file);
-        if (sslPort != 0) {
+        if (port > 0) {
+            this.fmp4 = new StreamURL("http", host, port, file);
+            this.ws_fmp4 = new StreamURL("ws", host, port, file);
+        }
+        if (sslPort > 0) {
             this.https_fmp4 = new StreamURL("https", host, sslPort, file);
             this.wss_fmp4 = new StreamURL("wss", host, sslPort, file);
         }
@@ -117,9 +214,11 @@
 
     public void setHls(String host, int port, int sslPort, String app, String stream, String callIdParam) {
         String file = String.format("%s/%s/hls.m3u8%s", app, stream, callIdParam);
-        this.hls = new StreamURL("http", host, port, file);
-        this.ws_hls = new StreamURL("ws", host, port, file);
-        if (sslPort != 0) {
+        if (port > 0) {
+            this.hls = new StreamURL("http", host, port, file);
+            this.ws_hls = new StreamURL("ws", host, port, file);
+        }
+        if (sslPort > 0) {
             this.https_hls = new StreamURL("https", host, sslPort, file);
             this.wss_hls = new StreamURL("wss", host, sslPort, file);
         }
@@ -127,51 +226,94 @@
 
     public void setTs(String host, int port, int sslPort, String app, String stream, String callIdParam) {
         String file = String.format("%s/%s.live.ts%s", app, stream, callIdParam);
-        this.ts = new StreamURL("http", host, port, file);
-        this.ws_ts = new StreamURL("ws", host, port, file);
-        if (sslPort != 0) {
+
+        if (port > 0) {
+            this.ts = new StreamURL("http", host, port, file);
+            this.ws_ts = new StreamURL("ws", host, port, file);
+        }
+        if (sslPort > 0) {
             this.https_ts = new StreamURL("https", host, sslPort, file);
             this.wss_ts = new StreamURL("wss", host, sslPort, file);
         }
     }
 
     public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        if (callIdParam != null) {
+            callIdParam = Objects.equals(callIdParam, "") ? callIdParam : callIdParam.replace("?", "&");
+        }
         String file = String.format("index/api/webrtc?app=%s&stream=%s&type=play%s", app, stream, callIdParam);
-        this.rtc = new StreamURL("http", host, port, file);
-        if (sslPort != 0) {
+        if (port > 0) {
+            this.rtc = new StreamURL("http", host, port, file);
+        }
+        if (sslPort > 0) {
             this.rtcs = new StreamURL("https", host, sslPort, file);
         }
     }
 
     public void channgeStreamIp(String localAddr) {
-        this.flv.setHost(localAddr);
-        this.ws_flv.setHost(localAddr);
-        this.hls.setHost(localAddr);
-        this.ws_hls.setHost(localAddr);
-        this.ts.setHost(localAddr);
-        this.ws_ts.setHost(localAddr);
-        this.fmp4.setHost(localAddr);
-        this.ws_fmp4.setHost(localAddr);
-        this.rtc.setHost(localAddr);
+        if (this.flv != null) {
+            this.flv.setHost(localAddr);
+        }
+        if (this.ws_flv != null ){
+            this.ws_flv.setHost(localAddr);
+        }
+        if (this.hls != null ) {
+            this.hls.setHost(localAddr);
+        }
+        if (this.ws_hls != null ) {
+            this.ws_hls.setHost(localAddr);
+        }
+        if (this.ts != null ) {
+            this.ts.setHost(localAddr);
+        }
+        if (this.ws_ts != null ) {
+            this.ws_ts.setHost(localAddr);
+        }
+        if (this.fmp4 != null ) {
+            this.fmp4.setHost(localAddr);
+        }
+        if (this.ws_fmp4 != null ) {
+            this.ws_fmp4.setHost(localAddr);
+        }
+        if (this.rtc != null ) {
+            this.rtc.setHost(localAddr);
+        }
         if (this.https_flv != null) {
             this.https_flv.setHost(localAddr);
+        }
+        if (this.wss_flv != null) {
             this.wss_flv.setHost(localAddr);
+        }
+        if (this.https_hls != null) {
             this.https_hls.setHost(localAddr);
+        }
+        if (this.wss_hls != null) {
             this.wss_hls.setHost(localAddr);
+        }
+        if (this.wss_ts != null) {
             this.wss_ts.setHost(localAddr);
+        }
+        if (this.https_fmp4 != null) {
             this.https_fmp4.setHost(localAddr);
+        }
+        if (this.wss_fmp4 != null) {
             this.wss_fmp4.setHost(localAddr);
+        }
+        if (this.rtcs != null) {
             this.rtcs.setHost(localAddr);
         }
-        this.rtsp.setHost(localAddr);
+        if (this.rtsp != null) {
+            this.rtsp.setHost(localAddr);
+        }
         if (this.rtsps != null) {
             this.rtsps.setHost(localAddr);
         }
-        this.rtmp.setHost(localAddr);
+        if (this.rtmp != null) {
+            this.rtmp.setHost(localAddr);
+        }
         if (this.rtmps != null) {
             this.rtmps.setHost(localAddr);
         }
-
     }
 
 
@@ -375,4 +517,93 @@
     public void setTransactionInfo(TransactionInfo transactionInfo) {
         this.transactionInfo = transactionInfo;
     }
+
+    @Override
+    public StreamInfo clone() {
+        StreamInfo instance = null;
+        try{
+            instance = (StreamInfo)super.clone();
+            if (this.flv != null) {
+                instance.flv=this.flv.clone();
+            }
+            if (this.ws_flv != null ){
+                instance.ws_flv= this.ws_flv.clone();
+            }
+            if (this.hls != null ) {
+                instance.hls= this.hls.clone();
+            }
+            if (this.ws_hls != null ) {
+                instance.ws_hls= this.ws_hls.clone();
+            }
+            if (this.ts != null ) {
+                instance.ts= this.ts.clone();
+            }
+            if (this.ws_ts != null ) {
+                instance.ws_ts= this.ws_ts.clone();
+            }
+            if (this.fmp4 != null ) {
+                instance.fmp4= this.fmp4.clone();
+            }
+            if (this.ws_fmp4 != null ) {
+                instance.ws_fmp4= this.ws_fmp4.clone();
+            }
+            if (this.rtc != null ) {
+                instance.rtc= this.rtc.clone();
+            }
+            if (this.https_flv != null) {
+                instance.https_flv= this.https_flv.clone();
+            }
+            if (this.wss_flv != null) {
+                instance.wss_flv= this.wss_flv.clone();
+            }
+            if (this.https_hls != null) {
+                instance.https_hls= this.https_hls.clone();
+            }
+            if (this.wss_hls != null) {
+                instance.wss_hls= this.wss_hls.clone();
+            }
+            if (this.wss_ts != null) {
+                instance.wss_ts= this.wss_ts.clone();
+            }
+            if (this.https_fmp4 != null) {
+                instance.https_fmp4= this.https_fmp4.clone();
+            }
+            if (this.wss_fmp4 != null) {
+                instance.wss_fmp4= this.wss_fmp4.clone();
+            }
+            if (this.rtcs != null) {
+                instance.rtcs= this.rtcs.clone();
+            }
+            if (this.rtsp != null) {
+                instance.rtsp= this.rtsp.clone();
+            }
+            if (this.rtsps != null) {
+                instance.rtsps= this.rtsps.clone();
+            }
+            if (this.rtmp != null) {
+                instance.rtmp= this.rtmp.clone();
+            }
+            if (this.rtmps != null) {
+                instance.rtmps= this.rtmps.clone();
+            }
+        }catch(CloneNotSupportedException e) {
+            e.printStackTrace();
+        }
+        return instance;
+    }
+
+
+    /*=========================璁惧涓诲瓙鐮佹祦閫昏緫START====================*/
+    @Schema(description = "鏄惁涓哄瓙鐮佹祦(true-鏄紝false-涓荤爜娴�)")
+    private boolean subStream;
+
+    public boolean isSubStream() {
+        return subStream;
+    }
+
+    public void setSubStream(boolean subStream) {
+        this.subStream = subStream;
+    }
+
+
 }

--
Gitblit v1.8.0