From 23710f1c649354fb21317dd710a4b2ec53688a44 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 17 十一月 2022 17:01:54 +0800 Subject: [PATCH] 优化多网卡下的localIp获取 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java | 45 +++++++++++++++++++++++---------------------- 1 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java index 87e203a..68a8133 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java @@ -83,20 +83,6 @@ public DeferredResult<WVPResult<StreamInfo>> play(HttpServletRequest request, @PathVariable String deviceId, @PathVariable String channelId) { - String localAddr = request.getLocalAddr(); - String localName = request.getLocalName(); - String remoteHost = request.getRemoteHost(); - String remoteAddr = request.getRemoteAddr(); - String remoteUser = request.getRemoteUser(); - String requestURI = request.getRequestURI(); - System.out.println(3333333); - System.out.println(localAddr); - System.out.println(localName); - System.out.println(remoteHost); - System.out.println(remoteAddr); - System.out.println(remoteUser); - System.out.println(requestURI); - System.out.println(4444444); // 鑾峰彇鍙敤鐨剒lm Device device = storager.queryVideoDevice(deviceId); MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); @@ -110,16 +96,31 @@ DeferredResult<WVPResult<StreamInfo>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue()); DeferredResultEx<WVPResult<StreamInfo>> deferredResultEx = new DeferredResultEx<>(result); + result.onTimeout(()->{ + logger.info("鐐规挱鎺ュ彛绛夊緟瓒呮椂"); + // 閲婃斁rtpserver + WVPResult<StreamInfo> wvpResult = new WVPResult<>(); + wvpResult.setCode(ErrorCode.ERROR100.getCode()); + wvpResult.setMsg("鐐规挱瓒呮椂"); + msg.setData(wvpResult); + resultHolder.invokeResult(msg); + }); + + // TODO 鍦ㄧ偣鎾湭鎴愬姛鐨勬儏鍐典笅鍦ㄦ璋冪敤鎺ュ彛鐐规挱浼氬鑷磋繑鍥炵殑娴佸湴鍧�ip閿欒 deferredResultEx.setFilter(result1 -> { - System.out.println(1111); - System.out.println(request.getLocalName()); - WVPResult<StreamInfo> wvpResult = (WVPResult<StreamInfo>)result1; - if (wvpResult.getCode() == ErrorCode.SUCCESS.getCode()) { - StreamInfo data = wvpResult.getData(); - data.channgeStreamIp(request.getLocalName()); - ((WVPResult<StreamInfo>)result1).setData(data); + WVPResult<StreamInfo> wvpResult1 = (WVPResult<StreamInfo>)result1; + WVPResult<StreamInfo> clone = null; + try { + clone = (WVPResult<StreamInfo>)wvpResult1.clone(); + } catch (CloneNotSupportedException e) { + throw new RuntimeException(e); } - return result1; + if (clone.getCode() == ErrorCode.SUCCESS.getCode()) { + StreamInfo data = clone.getData().clone(); + data.channgeStreamIp(request.getLocalName()); + clone.setData(data); + } + return clone; }); // 褰曞儚鏌ヨ浠hannelId浣滀负deviceId鏌ヨ -- Gitblit v1.8.0