From c9164330424180cc8b35f4c4adc3e4a57101f812 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 30 六月 2023 10:34:02 +0800
Subject: [PATCH] 优化更新通道中父结点的判断
---
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
index 9f04950..a40bb3b 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
@@ -13,6 +13,7 @@
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.service.bean.*;
+import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -26,6 +27,7 @@
import java.text.ParseException;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@@ -127,6 +129,7 @@
case WvpRedisMsgCmd.REQUEST_PUSH_STREAM:
RequestPushStreamMsg param = JSON.to(RequestPushStreamMsg.class, wvpRedisMsg.getContent());
requestPushStreamMsgHand(param, wvpRedisMsg.getFromId(), wvpRedisMsg.getSerial());
+
break;
default:
break;
@@ -311,7 +314,9 @@
SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, content.getIp(),
content.getPort(), content.getSsrc(), content.getPlatformId(),
content.getApp(), content.getStream(), content.getChannelId(),
- content.getTcp(), content.getRtcp());
+ content.getTcp(), content.getRtcp(), ssrcFromCallback -> {
+ return querySendRTPServer(content.getPlatformId(), content.getChannelId(), content.getStream(), null) != null;
+ });
WVPResult<ResponseSendItemMsg> result = new WVPResult<>();
result.setCode(0);
@@ -388,4 +393,31 @@
});
redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
}
+
+ private SendRtpItem querySendRTPServer(String platformGbId, String channelId, String streamId, String callId) {
+ if (platformGbId == null) {
+ platformGbId = "*";
+ }
+ if (channelId == null) {
+ channelId = "*";
+ }
+ if (streamId == null) {
+ streamId = "*";
+ }
+ if (callId == null) {
+ callId = "*";
+ }
+ String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ + userSetting.getServerId() + "_*_"
+ + platformGbId + "_"
+ + channelId + "_"
+ + streamId + "_"
+ + callId;
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
+ if (scan.size() > 0) {
+ return (SendRtpItem)redisTemplate.opsForValue().get(scan.get(0));
+ }else {
+ return null;
+ }
+ }
}
--
Gitblit v1.8.0