diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java index 95a5c6f..bf638c4 100644 --- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java +++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/wvp/WvpService.java @@ -355,7 +355,7 @@ public class WvpService { schedule.cancel(true); } - String token = login(); + final String[] token = {login()}; Retryer> defaultGenericRetryer = RetryerBuilder.>newBuilder() // 异常就重试 .retryIfException() @@ -370,10 +370,11 @@ public class WvpService { if (attempt.hasException()) { log.info("异常 {}", attempt.getExceptionCause().getMessage()); cache.remove("token"); + token[0] = login(); } } }).build(); - Optional deviceChannel = defaultGenericRetryer.call(() -> getDeviceChannelByDeviceCode(token, deviceCode)); + Optional deviceChannel = defaultGenericRetryer.call(() -> getDeviceChannelByDeviceCode(token[0], deviceCode)); if (deviceChannel.isEmpty()) { result.setResult(JsonResponse.error(MessageFormat.format("未能获取 设备: {0} 的通道信息", deviceCode))); @@ -384,7 +385,7 @@ public class WvpService { log.info("设备通道信息 => {}", dc); try { - StreamContent data = wvpProxyClient.playStart(token, dc.getDeviceId(), dc.getChannelId()).getData(); + StreamContent data = wvpProxyClient.playStart(token[0], dc.getDeviceId(), dc.getChannelId()).getData(); log.info("实时流信息 {}", data); String url = StringUtils.joinWith("/",