From d4cf7e076accb966434c3a2db85d406ae2da14d1 Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Wed, 13 Mar 2024 13:36:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=20ack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gb28181/Gb28181DownloadService.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java index e786cf6..fe01e51 100644 --- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java +++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java @@ -598,14 +598,17 @@ public class Gb28181DownloadService { log.info("订阅 {} {} 流媒体服务连接成功, 开始推送视频流", MessageProcessor.Method.INVITE, subscribeKey); log.info("收到响应状态 {}", statusCode); String callId = item.getCallId().getCallId(); - sender.sendRequest(((provider, ip, port) -> { - String fromTag = item.getFromTag(); - String toTag = item.getToTag(); - String key = GenericSubscribe.Helper.getKey(Request.BYE, callId); - subscribe.getByeSubscribe().addPublisher(key); - subscribe.getByeSubscribe().addSubscribe(key, byeSubscriber(key, device, cacheKey, streamId, time, unit)); - return SipRequestBuilder.createAckRequest(Response.OK, ip, port, docking, device.getGbDeviceChannelId(), fromTag, toTag, callId); - })); + + scheduledExecutorService.schedule(()->{ + sender.sendRequest(((provider, ip, port) -> { + String fromTag = item.getFromTag(); + String toTag = item.getToTag(); + String key = GenericSubscribe.Helper.getKey(Request.BYE, callId); + subscribe.getByeSubscribe().addPublisher(key); + subscribe.getByeSubscribe().addSubscribe(key, byeSubscriber(key, device, cacheKey, streamId, time, unit)); + return SipRequestBuilder.createAckRequest(Response.OK, ip, port, docking, device.getGbDeviceChannelId(), fromTag, toTag, callId); + })); + },200,TimeUnit.MILLISECONDS); } else { log.info("订阅 {} {} 连接流媒体服务时出现异常, 终止订阅", MessageProcessor.Method.INVITE, subscribeKey); zlmMediaService.closeRtpServer(new CloseRtpServer(streamId));