Commit bbcdb370f9ee1c192d3afb345a356f710563ac06

Authored by 648540858
1 parent a371015b

为级联推流端口补充默认值

src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
@@ -130,11 +130,21 @@ public class ServerController { @@ -130,11 +130,21 @@ public class ServerController {
130 @PostMapping(value = "/media_server/save") 130 @PostMapping(value = "/media_server/save")
131 @ResponseBody 131 @ResponseBody
132 public WVPResult<String> saveMediaServer(@RequestBody MediaServerItem mediaServerItem){ 132 public WVPResult<String> saveMediaServer(@RequestBody MediaServerItem mediaServerItem){
133 - if (mediaServerService.getOne(mediaServerItem.getId()) != null) { 133 + MediaServerItem mediaServerItemInDatabase = mediaServerService.getOne(mediaServerItem.getId());
  134 +
  135 + if (mediaServerItemInDatabase != null) {
  136 + if (StringUtils.isEmpty(mediaServerItemInDatabase.getSendRtpPortRange())
  137 + && StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
  138 + mediaServerItem.setSendRtpPortRange("30000,30500");
  139 + }
134 mediaServerService.update(mediaServerItem); 140 mediaServerService.update(mediaServerItem);
135 }else { 141 }else {
  142 + if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
  143 + mediaServerItem.setSendRtpPortRange("30000,30500");
  144 + }
136 return mediaServerService.add(mediaServerItem); 145 return mediaServerService.add(mediaServerItem);
137 } 146 }
  147 +
138 WVPResult<String> result = new WVPResult<>(); 148 WVPResult<String> result = new WVPResult<>();
139 result.setCode(0); 149 result.setCode(0);
140 result.setMsg("success"); 150 result.setMsg("success");
web_src/src/components/MediaServerManger.vue
@@ -21,7 +21,8 @@ @@ -21,7 +21,8 @@
21 <el-button icon="el-icon-edit" style="padding: 0;float: right;" type="text" @click="edit(item)">编辑</el-button> 21 <el-button icon="el-icon-edit" style="padding: 0;float: right;" type="text" @click="edit(item)">编辑</el-button>
22 <el-button icon="el-icon-delete" style="margin-right: 10px;padding: 0;float: right;" type="text" @click="del(item)">移除</el-button> 22 <el-button icon="el-icon-delete" style="margin-right: 10px;padding: 0;float: right;" type="text" @click="del(item)">移除</el-button>
23 <div style="margin-top: 13px; line-height: 12px; "> 23 <div style="margin-top: 13px; line-height: 12px; ">
24 - <span style="font-size: 14px; color: #999; margin-top: 5px">创建时间: {{item.createTime}}</span> 24 + <span style="font-size: 14px; color: #999; margin-top: 5px; ">{{item.ip}}</span>
  25 + <span style="font-size: 14px; color: #999; margin-top: 5px; float: right;">{{item.createTime}}</span>
25 </div> 26 </div>
26 </div> 27 </div>
27 <i v-if="item.status" class="iconfont icon-online server-card-status-online" title="在线"></i> 28 <i v-if="item.status" class="iconfont icon-online server-card-status-online" title="在线"></i>
web_src/src/components/dialog/MediaServerEdit.vue
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 <el-form-item label="IP" prop="ip"> 14 <el-form-item label="IP" prop="ip">
15 <el-input v-model="mediaServerForm.ip" placeholder="媒体服务IP" clearable></el-input> 15 <el-input v-model="mediaServerForm.ip" placeholder="媒体服务IP" clearable></el-input>
16 </el-form-item> 16 </el-form-item>
17 - <el-form-item label="HTTP端口" prop="port"> 17 + <el-form-item label="HTTP端口" prop="httpPort">
18 <el-input v-model="mediaServerForm.httpPort" placeholder="媒体服务HTTP端口" clearable></el-input> 18 <el-input v-model="mediaServerForm.httpPort" placeholder="媒体服务HTTP端口" clearable></el-input>
19 </el-form-item> 19 </el-form-item>
20 <el-form-item label="SECRET" prop="secret"> 20 <el-form-item label="SECRET" prop="secret">
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 <el-input v-if="currentStep === 2" v-model="mediaServerForm.ip" disabled></el-input> 37 <el-input v-if="currentStep === 2" v-model="mediaServerForm.ip" disabled></el-input>
38 <el-input v-if="currentStep === 3" v-model="mediaServerForm.ip"></el-input> 38 <el-input v-if="currentStep === 3" v-model="mediaServerForm.ip"></el-input>
39 </el-form-item> 39 </el-form-item>
40 - <el-form-item label="HTTP端口" prop="port"> 40 + <el-form-item label="HTTP端口" prop="httpPort">
41 <el-input v-if="currentStep === 2" v-model="mediaServerForm.httpPort" disabled></el-input> 41 <el-input v-if="currentStep === 2" v-model="mediaServerForm.httpPort" disabled></el-input>
42 <el-input v-if="currentStep === 3" v-model="mediaServerForm.httpPort"></el-input> 42 <el-input v-if="currentStep === 3" v-model="mediaServerForm.httpPort"></el-input>
43 </el-form-item> 43 </el-form-item>
@@ -54,13 +54,13 @@ @@ -54,13 +54,13 @@
54 <el-form-item label="流IP" prop="ip"> 54 <el-form-item label="流IP" prop="ip">
55 <el-input v-model="mediaServerForm.streamIp" placeholder="媒体服务流IP" clearable></el-input> 55 <el-input v-model="mediaServerForm.streamIp" placeholder="媒体服务流IP" clearable></el-input>
56 </el-form-item> 56 </el-form-item>
57 - <el-form-item label="HTTPS PORT" prop="port"> 57 + <el-form-item label="HTTPS PORT" prop="httpSSlPort">
58 <el-input v-model="mediaServerForm.httpSSlPort" placeholder="媒体服务HTTPS_PORT" clearable></el-input> 58 <el-input v-model="mediaServerForm.httpSSlPort" placeholder="媒体服务HTTPS_PORT" clearable></el-input>
59 </el-form-item> 59 </el-form-item>
60 - <el-form-item label="RTSP PORT" prop="port"> 60 + <el-form-item label="RTSP PORT" prop="rtspPort">
61 <el-input v-model="mediaServerForm.rtspPort" placeholder="媒体服务RTSP_PORT" clearable></el-input> 61 <el-input v-model="mediaServerForm.rtspPort" placeholder="媒体服务RTSP_PORT" clearable></el-input>
62 </el-form-item> 62 </el-form-item>
63 - <el-form-item label="RTSPS PORT" prop="port"> 63 + <el-form-item label="RTSPS PORT" prop="rtspSSLPort">
64 <el-input v-model="mediaServerForm.rtspSSLPort" placeholder="媒体服务RTSPS_PORT" clearable></el-input> 64 <el-input v-model="mediaServerForm.rtspSSLPort" placeholder="媒体服务RTSPS_PORT" clearable></el-input>
65 </el-form-item> 65 </el-form-item>
66 66
@@ -68,10 +68,10 @@ @@ -68,10 +68,10 @@
68 </el-col> 68 </el-col>
69 <el-col :span="12"> 69 <el-col :span="12">
70 <el-form v-if="currentStep === 2 || currentStep === 3" ref="mediaServerForm2" :rules="rules" :model="mediaServerForm" label-width="180px" > 70 <el-form v-if="currentStep === 2 || currentStep === 3" ref="mediaServerForm2" :rules="rules" :model="mediaServerForm" label-width="180px" >
71 - <el-form-item label="RTMP PORT" prop="port"> 71 + <el-form-item label="RTMP PORT" prop="rtmpPort">
72 <el-input v-model="mediaServerForm.rtmpPort" placeholder="媒体服务RTMP_PORT" clearable></el-input> 72 <el-input v-model="mediaServerForm.rtmpPort" placeholder="媒体服务RTMP_PORT" clearable></el-input>
73 </el-form-item> 73 </el-form-item>
74 - <el-form-item label="RTMPS PORT" prop="port"> 74 + <el-form-item label="RTMPS PORT" prop="rtmpSSlPort">
75 <el-input v-model="mediaServerForm.rtmpSSlPort" placeholder="媒体服务RTMPS_PORT" clearable></el-input> 75 <el-input v-model="mediaServerForm.rtmpSSlPort" placeholder="媒体服务RTMPS_PORT" clearable></el-input>
76 </el-form-item> 76 </el-form-item>
77 <el-form-item label="自动配置媒体服务" > 77 <el-form-item label="自动配置媒体服务" >
@@ -81,23 +81,23 @@ @@ -81,23 +81,23 @@
81 <el-switch active-text="多端口" inactive-text="单端口" v-model="mediaServerForm.rtpEnable"></el-switch> 81 <el-switch active-text="多端口" inactive-text="单端口" v-model="mediaServerForm.rtpEnable"></el-switch>
82 </el-form-item> 82 </el-form-item>
83 83
84 - <el-form-item v-if="!mediaServerForm.rtpEnable" label="收流端口" prop="port"> 84 + <el-form-item v-if="!mediaServerForm.rtpEnable" label="收流端口" prop="rtpProxyPort">
85 <el-input v-model.number="mediaServerForm.rtpProxyPort" clearable></el-input> 85 <el-input v-model.number="mediaServerForm.rtpProxyPort" clearable></el-input>
86 </el-form-item> 86 </el-form-item>
87 - <el-form-item v-if="mediaServerForm.rtpEnable" label="收流端口" prop="port">  
88 - <el-input v-model="mediaServerForm.rtpPortRange1" placeholder="起始" clearable style="width: 100px" prop="port"></el-input> 87 + <el-form-item v-if="mediaServerForm.rtpEnable" label="收流端口" >
  88 + <el-input v-model="rtpPortRange1" placeholder="起始" @change="portRangeChange" clearable style="width: 100px" prop="rtpPortRange1"></el-input>
89 - 89 -
90 - <el-input v-model="mediaServerForm.rtpPortRange2" placeholder="终止" clearable style="width: 100px" prop="port"></el-input> 90 + <el-input v-model="rtpPortRange2" placeholder="终止" @change="portRangeChange" clearable style="width: 100px" prop="rtpPortRange2"></el-input>
91 </el-form-item> 91 </el-form-item>
92 - <el-form-item label="推流端口" prop="port">  
93 - <el-input v-model="mediaServerForm.sendRtpPortRange1" placeholder="起始" clearable style="width: 100px" prop="port"></el-input> 92 + <el-form-item label="推流端口" prop="sendRtpPortRange1">
  93 + <el-input v-model="sendRtpPortRange1" placeholder="起始" @change="portRangeChange" clearable style="width: 100px" prop="sendRtpPortRange1"></el-input>
94 - 94 -
95 - <el-input v-model="mediaServerForm.sendRtpPortRange2" placeholder="终止" clearable style="width: 100px" prop="port"></el-input> 95 + <el-input v-model="sendRtpPortRange2" placeholder="终止" @change="portRangeChange" clearable style="width: 100px" prop="sendRtpPortRange2"></el-input>
96 </el-form-item> 96 </el-form-item>
97 <el-form-item label="无人观看多久后停止拉流" > 97 <el-form-item label="无人观看多久后停止拉流" >
98 <el-input v-model.number="mediaServerForm.streamNoneReaderDelayMS" clearable></el-input> 98 <el-input v-model.number="mediaServerForm.streamNoneReaderDelayMS" clearable></el-input>
99 </el-form-item> 99 </el-form-item>
100 - <el-form-item label="录像管理服务端口" prop="port"> 100 + <el-form-item label="录像管理服务端口" prop="recordAssistPort">
101 <el-input v-model.number="mediaServerForm.recordAssistPort"> 101 <el-input v-model.number="mediaServerForm.recordAssistPort">
102 <!-- <el-button v-if="mediaServerForm.recordAssistPort > 0" slot="append" type="primary" @click="checkRecordServer">测试</el-button>--> 102 <!-- <el-button v-if="mediaServerForm.recordAssistPort > 0" slot="append" type="primary" @click="checkRecordServer">测试</el-button>-->
103 <el-button v-if="mediaServerForm.recordAssistPort > 0" class="el-icon-check" slot="append" type="primary" @click="checkRecordServer"></el-button> 103 <el-button v-if="mediaServerForm.recordAssistPort > 0" class="el-icon-check" slot="append" type="primary" @click="checkRecordServer"></el-button>
@@ -181,18 +181,29 @@ export default { @@ -181,18 +181,29 @@ export default {
181 rtpEnable: false, 181 rtpEnable: false,
182 rtpPortRange: "", 182 rtpPortRange: "",
183 sendRtpPortRange: "", 183 sendRtpPortRange: "",
184 - rtpPortRange1: "",  
185 - rtpPortRange2: "",  
186 - sendRtpPortRange1: "",  
187 - sendRtpPortRange2: "",  
188 rtpProxyPort: "", 184 rtpProxyPort: "",
189 rtspPort: "", 185 rtspPort: "",
190 rtspSSLPort: "", 186 rtspSSLPort: "",
191 }, 187 },
  188 + rtpPortRange1:30000,
  189 + rtpPortRange2:30500,
  190 + sendRtpPortRange1:30000,
  191 + sendRtpPortRange2:30500,
192 192
193 rules: { 193 rules: {
194 ip: [{ required: true, validator: isValidIp, message: '请输入有效的IP地址', trigger: 'blur' }], 194 ip: [{ required: true, validator: isValidIp, message: '请输入有效的IP地址', trigger: 'blur' }],
195 - port: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }], 195 + httpPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  196 + httpSSlPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  197 + recordAssistPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  198 + rtmpPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  199 + rtmpSSlPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  200 + rtpPortRange1: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  201 + rtpPortRange2: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  202 + sendRtpPortRange1: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  203 + sendRtpPortRange2: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  204 + rtpProxyPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  205 + rtspPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
  206 + rtspSSLPort: [{ required: true, validator: isValidPort, message: '请输入有效的端口号', trigger: 'blur' }],
196 secret: [{ required: true, message: "请输入secret", trigger: "blur" }], 207 secret: [{ required: true, message: "请输入secret", trigger: "blur" }],
197 timeout_ms: [{ required: true, message: "请输入FFmpeg推流成功超时时间", trigger: "blur" }], 208 timeout_ms: [{ required: true, message: "请输入FFmpeg推流成功超时时间", trigger: "blur" }],
198 ffmpeg_cmd_key: [{ required: false, message: "请输入FFmpeg命令参数模板(可选)", trigger: "blur" }], 209 ffmpeg_cmd_key: [{ required: false, message: "请输入FFmpeg命令参数模板(可选)", trigger: "blur" }],
@@ -217,13 +228,13 @@ export default { @@ -217,13 +228,13 @@ export default {
217 if (param.rtpPortRange) { 228 if (param.rtpPortRange) {
218 let rtpPortRange = this.mediaServerForm.rtpPortRange.split(","); 229 let rtpPortRange = this.mediaServerForm.rtpPortRange.split(",");
219 if (rtpPortRange.length > 0) { 230 if (rtpPortRange.length > 0) {
220 - this.mediaServerForm["rtpPortRange1"] = rtpPortRange[0]  
221 - this.mediaServerForm["rtpPortRange2"] = rtpPortRange[1] 231 + this.rtpPortRange1 = rtpPortRange[0]
  232 + this.rtpPortRange2 = rtpPortRange[1]
222 } 233 }
223 } 234 }
224 let sendRtpPortRange = this.mediaServerForm.sendRtpPortRange.split(","); 235 let sendRtpPortRange = this.mediaServerForm.sendRtpPortRange.split(",");
225 - this.mediaServerForm["sendRtpPortRange1"] = sendRtpPortRange[0]  
226 - this.mediaServerForm["sendRtpPortRange2"] = sendRtpPortRange[1] 236 + this.sendRtpPortRange1 = sendRtpPortRange[0]
  237 + this.sendRtpPortRange2 = sendRtpPortRange[1]
227 } 238 }
228 }, 239 },
229 checkServer: function() { 240 checkServer: function() {
@@ -243,10 +254,10 @@ export default { @@ -243,10 +254,10 @@ export default {
243 that.mediaServerForm = data.data; 254 that.mediaServerForm = data.data;
244 that.mediaServerForm.httpPort = httpPort; 255 that.mediaServerForm.httpPort = httpPort;
245 that.mediaServerForm.autoConfig = true; 256 that.mediaServerForm.autoConfig = true;
246 - that.mediaServerForm.sendRtpPortRange1 = 30000  
247 - that.mediaServerForm.sendRtpPortRange2 = 30500  
248 - that.mediaServerForm.rtpPortRange1 = 30000  
249 - that.mediaServerForm.rtpPortRange2 = 30500 257 + that.sendRtpPortRange1 = 30000
  258 + that.sendRtpPortRange2 = 30500
  259 + that.rtpPortRange1 = 30000
  260 + that.rtpPortRange2 = 30500
250 that.serverCheck = 1; 261 that.serverCheck = 1;
251 }else { 262 }else {
252 that.serverCheck = -1; 263 that.serverCheck = -1;
@@ -292,10 +303,6 @@ export default { @@ -292,10 +303,6 @@ export default {
292 onSubmit: function () { 303 onSubmit: function () {
293 this.dialogLoading = true; 304 this.dialogLoading = true;
294 let that = this; 305 let that = this;
295 - if (this.mediaServerForm.rtpEnable) {  
296 - this.mediaServerForm.rtpPortRange = this.mediaServerForm.rtpPortRange1 + "," + this.mediaServerForm.rtpPortRange2;  
297 - }  
298 - this.mediaServerForm.sendRtpPortRange = this.mediaServerForm.sendRtpPortRange1 + "," + this.mediaServerForm.sendRtpPortRange2;  
299 that.mediaServer.addServer(this.mediaServerForm, data => { 306 that.mediaServer.addServer(this.mediaServerForm, data => {
300 if (data.code === 0) { 307 if (data.code === 0) {
301 that.$message({ 308 that.$message({
@@ -334,14 +341,14 @@ export default { @@ -334,14 +341,14 @@ export default {
334 rtpEnable: false, 341 rtpEnable: false,
335 rtpPortRange: "", 342 rtpPortRange: "",
336 sendRtpPortRange: "", 343 sendRtpPortRange: "",
337 - rtpPortRange1: "",  
338 - rtpPortRange2: "",  
339 - sendRtpPortRange1: "",  
340 - sendRtpPortRange2: "",  
341 rtpProxyPort: "", 344 rtpProxyPort: "",
342 rtspPort: "", 345 rtspPort: "",
343 rtspSSLPort: "", 346 rtspSSLPort: "",
344 }; 347 };
  348 + this.sendRtpPortRange1 = 30000;
  349 + this.sendRtpPortRange2 = 30500;
  350 + this.rtpPortRange1 = 30500;
  351 + this.rtpPortRange2 = 30500;
345 this.listChangeCallback = null 352 this.listChangeCallback = null
346 this.currentStep = 1; 353 this.currentStep = 1;
347 }, 354 },
@@ -362,6 +369,12 @@ export default { @@ -362,6 +369,12 @@ export default {
362 if (this.platform.enable && this.platform.expires == "0") { 369 if (this.platform.enable && this.platform.expires == "0") {
363 this.platform.expires = "300"; 370 this.platform.expires = "300";
364 } 371 }
  372 + },
  373 + portRangeChange: function() {
  374 + this.mediaServerForm.sendRtpPortRange = this.sendRtpPortRange1 + "," + this.sendRtpPortRange2
  375 + this.mediaServerForm.rtpPortRange = this.rtpPortRange1 + "," + this.rtpPortRange2
  376 + console.log(this.mediaServerForm.sendRtpPortRange)
  377 + console.log(this.mediaServerForm.rtpPortRange)
365 } 378 }
366 }, 379 },
367 }; 380 };