临时提交

2.7.1
648540858 2024-12-02 15:06:53 +08:00
parent a15454fa1c
commit ce8e743811
1 changed files with 12 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package com.genersoft.iot.vmp.media.zlm;
import com.alibaba.fastjson2.JSON;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
@ -31,16 +32,19 @@ public class SendRtpPortManager {
private final String KEY = "VM_MEDIA_SEND_RTP_PORT_";
public synchronized int getNextPort(MediaServerItem mediaServer) {
logger.info("[获取下一个端口] ");
logger.info(JSON.toJSONString(mediaServer));
if (mediaServer == null) {
logger.warn("[发送端口管理] 参数错误mediaServer为NULL");
return -1;
return 0;
}
String sendIndexKey = KEY + userSetting.getServerId() + "_" + mediaServer.getId();
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*";
List<Object> queryResult = RedisUtil.scan(redisTemplate, key);
Map<Integer, SendRtpItem> sendRtpItemMap = new HashMap<>();
logger.info("[获取下一个端口] queryResult");
logger.info(JSON.toJSONString(queryResult));
for (Object o : queryResult) {
SendRtpItem sendRtpItem = (SendRtpItem) redisTemplate.opsForValue().get(o);
if (sendRtpItem != null) {
@ -73,13 +77,17 @@ public class SendRtpPortManager {
}
if (redisTemplate == null || redisTemplate.getConnectionFactory() == null) {
logger.warn("{}获取redis连接信息失败", mediaServer.getId());
return -1;
return 0;
}
logger.info("[获取下一个端口] startPort{ {}, endPort:{}", startPort, endPort);
logger.info(JSON.toJSONString(queryResult));
// RedisAtomicInteger redisAtomicInteger = new RedisAtomicInteger(sendIndexKey , redisTemplate.getConnectionFactory());
// return redisAtomicInteger.getAndUpdate((current)->{
// return getPort(current, startPort, endPort, checkPort-> !sendRtpItemMap.containsKey(checkPort));
// });
return getSendPort(startPort, endPort, sendIndexKey, sendRtpItemMap);
int sendPort = getSendPort(startPort, endPort, sendIndexKey, sendRtpItemMap);
logger.info("[获取下一个端口] 发流端口{}", sendPort);
return sendPort;
}
private synchronized int getSendPort(int startPort, int endPort, String sendIndexKey, Map<Integer, SendRtpItem> sendRtpItemMap){