From 3b21f385cdae7d94fce1ebba6abb06a893f57114 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 02 十一月 2021 10:40:29 +0800
Subject: [PATCH] 对需要向设备发起请求的http请求,使用缓存,等待设备请求返回的时候一次性释放所有请求

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java |   36 ++++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
index c1e43e8..7d9e5f7 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
@@ -13,7 +13,11 @@
 import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
 import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor;
 import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
+import com.genersoft.iot.vmp.service.IMediaServerService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**    
  * @Description:ACK璇锋眰澶勭悊鍣�  
@@ -22,9 +26,13 @@
  */
 public class AckRequestProcessor extends SIPRequestAbstractProcessor {
 
+	private Logger logger = LoggerFactory.getLogger(AckRequestProcessor.class);
+
     private IRedisCatchStorage redisCatchStorage;
 
 	private ZLMRTPServerFactory zlmrtpServerFactory;
+
+	private IMediaServerService mediaServerService;
 
 	/**   
 	 * 澶勭悊  ACK璇锋眰
@@ -55,8 +63,8 @@
 			}
 
 			redisCatchStorage.updateSendRTPSever(sendRtpItem);
-			System.out.println(platformGbId);
-			System.out.println(channelId);
+			logger.info(platformGbId);
+			logger.info(channelId);
 			Map<String, Object> param = new HashMap<>();
 			param.put("vhost","__defaultVhost__");
 			param.put("app",streamInfo.getApp());
@@ -72,18 +80,22 @@
 			while (!rtpPushed) {
 				try {
 					if (System.currentTimeMillis() - startTime < 30 * 1000) {
-						if (zlmrtpServerFactory.isStreamReady(streamInfo.getApp(), streamInfo.getStreamId())) {
+						MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId());
+						if (zlmrtpServerFactory.isStreamReady(mediaInfo, streamInfo.getApp(), streamInfo.getStreamId())) {
 							rtpPushed = true;
-							System.out.println("宸茶幏鍙栬澶囨帹娴侊紝寮�濮嬪悜涓婄骇鎺ㄦ祦");
-							zlmrtpServerFactory.startSendRtpStream(param);
+							logger.info("宸茶幏鍙栬澶囨帹娴乕{}/{}]锛屽紑濮嬪悜涓婄骇鎺ㄦ祦[{}:{}]",
+									streamInfo.getApp() ,streamInfo.getStreamId(), sendRtpItem.getIp(), sendRtpItem.getPort());
+							zlmrtpServerFactory.startSendRtpStream(mediaInfo, param);
 						} else {
-							System.out.println("绛夊緟璁惧鎺ㄦ祦.......");
+							logger.info("绛夊緟璁惧鎺ㄦ祦[{}/{}].......",
+									streamInfo.getApp() ,streamInfo.getStreamId());
 							Thread.sleep(1000);
 							continue;
 						}
 					} else {
 						rtpPushed = true;
-						System.out.println("璁惧鎺ㄦ祦瓒呮椂锛岀粓姝㈠悜涓婄骇鎺ㄦ祦");
+						logger.info("璁惧鎺ㄦ祦[{}/{}]瓒呮椂锛岀粓姝㈠悜涓婄骇鎺ㄦ祦",
+								streamInfo.getApp() ,streamInfo.getStreamId());
 					}
 				} catch (InterruptedException e) {
 					e.printStackTrace();
@@ -95,7 +107,7 @@
 		// 	CSeq csReq = (CSeq) request.getHeader(CSeq.NAME);
 		// 	ackRequest = dialog.createAck(csReq.getSeqNumber());
 		// 	dialog.sendAck(ackRequest);
-		// 	System.out.println("send ack to callee:" + ackRequest.toString());
+		// 	logger.info("send ack to callee:" + ackRequest.toString());
 		// } catch (SipException e) {
 		// 	e.printStackTrace();
 		// } catch (InvalidArgumentException e) {
@@ -119,4 +131,12 @@
 	public void setZlmrtpServerFactory(ZLMRTPServerFactory zlmrtpServerFactory) {
 		this.zlmrtpServerFactory = zlmrtpServerFactory;
 	}
+
+	public IMediaServerService getMediaServerService() {
+		return mediaServerService;
+	}
+
+	public void setMediaServerService(IMediaServerService mediaServerService) {
+		this.mediaServerService = mediaServerService;
+	}
 }

--
Gitblit v1.8.0