依赖包版本升级
This commit is contained in:
@@ -8,7 +8,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.genersoft.iot.vmp.media.zlm.ZLMRunner;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -54,9 +53,6 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
@Autowired
|
||||
private SipConfig sipConfig;
|
||||
|
||||
@Autowired
|
||||
private ZLMRunner zlmRunner;
|
||||
|
||||
@Value("${server.ssl.enabled:false}")
|
||||
private boolean sslEnabled;
|
||||
|
||||
@@ -84,8 +80,6 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
@Autowired
|
||||
private ZLMRTPServerFactory zlmrtpServerFactory;
|
||||
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
@Autowired
|
||||
private EventPublisher publisher;
|
||||
@@ -104,12 +98,12 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
if (mediaServerItem.getSsrcConfig() == null) {
|
||||
SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain());
|
||||
mediaServerItem.setSsrcConfig(ssrcConfig);
|
||||
redisUtil.set(VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId(), mediaServerItem);
|
||||
RedisUtil.set(VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId(), mediaServerItem);
|
||||
}
|
||||
// 查询redis是否存在此mediaServer
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId();
|
||||
if (!redisUtil.hasKey(key)) {
|
||||
redisUtil.set(key, mediaServerItem);
|
||||
if (!RedisUtil.hasKey(key)) {
|
||||
RedisUtil.set(key, mediaServerItem);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -151,7 +145,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
if (mediaServerItem.isRtpEnable()) {
|
||||
rtpServerPort = zlmrtpServerFactory.createRTPServer(mediaServerItem, streamId, ssrcCheck?Integer.parseInt(ssrc):0, port);
|
||||
}
|
||||
redisUtil.set(key, mediaServerItem);
|
||||
RedisUtil.set(key, mediaServerItem);
|
||||
return new SSRCInfo(rtpServerPort, ssrc, streamId);
|
||||
}
|
||||
}
|
||||
@@ -184,7 +178,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
ssrcConfig.releaseSsrc(ssrc);
|
||||
mediaServerItem.setSsrcConfig(ssrcConfig);
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId();
|
||||
redisUtil.set(key, mediaServerItem);
|
||||
RedisUtil.set(key, mediaServerItem);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -193,7 +187,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
@Override
|
||||
public void clearRTPServer(MediaServerItem mediaServerItem) {
|
||||
mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain()));
|
||||
redisUtil.zAdd(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), mediaServerItem.getId(), 0);
|
||||
RedisUtil.zAdd(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), mediaServerItem.getId(), 0);
|
||||
|
||||
}
|
||||
|
||||
@@ -215,19 +209,19 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
);
|
||||
}
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItemInDataBase.getId();
|
||||
redisUtil.set(key, mediaServerItemInDataBase);
|
||||
RedisUtil.set(key, mediaServerItemInDataBase);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MediaServerItem> getAll() {
|
||||
List<MediaServerItem> result = new ArrayList<>();
|
||||
List<Object> mediaServerKeys = redisUtil.scan(String.format("%S*", VideoManagerConstants.MEDIA_SERVER_PREFIX+ userSetting.getServerId() + "_" ));
|
||||
List<Object> mediaServerKeys = RedisUtil.scan(String.format("%S*", VideoManagerConstants.MEDIA_SERVER_PREFIX+ userSetting.getServerId() + "_" ));
|
||||
String onlineKey = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
for (Object mediaServerKey : mediaServerKeys) {
|
||||
String key = (String) mediaServerKey;
|
||||
MediaServerItem mediaServerItem = (MediaServerItem) redisUtil.get(key);
|
||||
MediaServerItem mediaServerItem = (MediaServerItem) RedisUtil.get(key);
|
||||
// 检查状态
|
||||
Double aDouble = redisUtil.zScore(onlineKey, mediaServerItem.getId());
|
||||
Double aDouble = RedisUtil.zScore(onlineKey, mediaServerItem.getId());
|
||||
if (aDouble != null) {
|
||||
mediaServerItem.setStatus(true);
|
||||
}
|
||||
@@ -253,13 +247,13 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
@Override
|
||||
public List<MediaServerItem> getAllOnline() {
|
||||
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
Set<String> mediaServerIdSet = redisUtil.zRevRange(key, 0, -1);
|
||||
Set<String> mediaServerIdSet = RedisUtil.zRevRange(key, 0, -1);
|
||||
|
||||
List<MediaServerItem> result = new ArrayList<>();
|
||||
if (mediaServerIdSet != null && mediaServerIdSet.size() > 0) {
|
||||
for (String mediaServerId : mediaServerIdSet) {
|
||||
String serverKey = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId;
|
||||
result.add((MediaServerItem) redisUtil.get(serverKey));
|
||||
result.add((MediaServerItem) RedisUtil.get(serverKey));
|
||||
}
|
||||
}
|
||||
Collections.reverse(result);
|
||||
@@ -277,7 +271,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
return null;
|
||||
}
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId;
|
||||
return (MediaServerItem)redisUtil.get(key);
|
||||
return (MediaServerItem)RedisUtil.get(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -289,7 +283,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
@Override
|
||||
public void clearMediaServerForOnline() {
|
||||
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
redisUtil.del(key);
|
||||
RedisUtil.del(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -397,14 +391,14 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
}
|
||||
mediaServerMapper.update(serverItem);
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + zlmServerConfig.getGeneralMediaServerId();
|
||||
if (redisUtil.get(key) == null) {
|
||||
if (RedisUtil.get(key) == null) {
|
||||
SsrcConfig ssrcConfig = new SsrcConfig(zlmServerConfig.getGeneralMediaServerId(), null, sipConfig.getDomain());
|
||||
serverItem.setSsrcConfig(ssrcConfig);
|
||||
}else {
|
||||
MediaServerItem mediaServerItemInRedis = (MediaServerItem)redisUtil.get(key);
|
||||
MediaServerItem mediaServerItemInRedis = (MediaServerItem)RedisUtil.get(key);
|
||||
serverItem.setSsrcConfig(mediaServerItemInRedis.getSsrcConfig());
|
||||
}
|
||||
redisUtil.set(key, serverItem);
|
||||
RedisUtil.set(key, serverItem);
|
||||
resetOnlineServerItem(serverItem);
|
||||
if (serverItem.isAutoConfig()) {
|
||||
setZLMConfig(serverItem, "0".equals(zlmServerConfig.getHookEnable()));
|
||||
@@ -425,15 +419,15 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
// 更新缓存
|
||||
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
// 使用zset的分数作为当前并发量, 默认值设置为0
|
||||
if (redisUtil.zScore(key, serverItem.getId()) == null) { // 不存在则设置默认值 已存在则重置
|
||||
redisUtil.zAdd(key, serverItem.getId(), 0L);
|
||||
if (RedisUtil.zScore(key, serverItem.getId()) == null) { // 不存在则设置默认值 已存在则重置
|
||||
RedisUtil.zAdd(key, serverItem.getId(), 0L);
|
||||
// 查询服务流数量
|
||||
zlmresTfulUtils.getMediaList(serverItem, null, null, "rtmp",(mediaList ->{
|
||||
Integer code = mediaList.getInteger("code");
|
||||
if (code == 0) {
|
||||
JSONArray data = mediaList.getJSONArray("data");
|
||||
if (data != null) {
|
||||
redisUtil.zAdd(key, serverItem.getId(), data.size());
|
||||
RedisUtil.zAdd(key, serverItem.getId(), data.size());
|
||||
}
|
||||
}
|
||||
}));
|
||||
@@ -450,14 +444,14 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
return;
|
||||
}
|
||||
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
redisUtil.zIncrScore(key, mediaServerId, 1);
|
||||
RedisUtil.zIncrScore(key, mediaServerId, 1);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeCount(String mediaServerId) {
|
||||
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
redisUtil.zIncrScore(key, mediaServerId, - 1);
|
||||
RedisUtil.zIncrScore(key, mediaServerId, - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -468,15 +462,15 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
public MediaServerItem getMediaServerForMinimumLoad() {
|
||||
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
|
||||
|
||||
if (redisUtil.zSize(key) == null || redisUtil.zSize(key) == 0) {
|
||||
if (redisUtil.zSize(key) == null || redisUtil.zSize(key) == 0) {
|
||||
if (RedisUtil.zSize(key) == null || RedisUtil.zSize(key) == 0) {
|
||||
if (RedisUtil.zSize(key) == null || RedisUtil.zSize(key) == 0) {
|
||||
logger.info("获取负载最低的节点时无在线节点");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取分数最低的,及并发最低的
|
||||
Set<Object> objects = redisUtil.ZRange(key, 0, -1);
|
||||
Set<Object> objects = RedisUtil.ZRange(key, 0, -1);
|
||||
ArrayList<Object> mediaServerObjectS = new ArrayList<>(objects);
|
||||
|
||||
String mediaServerId = (String)mediaServerObjectS.get(0);
|
||||
@@ -619,9 +613,9 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
|
||||
@Override
|
||||
public void delete(String id) {
|
||||
redisUtil.zRemove(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), id);
|
||||
RedisUtil.zRemove(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), id);
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + id;
|
||||
redisUtil.del(key);
|
||||
RedisUtil.del(key);
|
||||
}
|
||||
@Override
|
||||
public void deleteDb(String id){
|
||||
@@ -640,7 +634,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
}
|
||||
// zlm连接重试
|
||||
logger.warn("[更新ZLM 保活信息]失败,未找到流媒体信息,尝试重连zlm");
|
||||
reloadZlm();
|
||||
// reloadZlm();
|
||||
mediaServerItem = getOne(mediaServerId);
|
||||
if (mediaServerItem == null) {
|
||||
// zlm连接重试
|
||||
@@ -650,7 +644,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
}
|
||||
String key = VideoManagerConstants.MEDIA_SERVER_KEEPALIVE_PREFIX + userSetting.getServerId() + "_" + mediaServerId;
|
||||
int hookAliveInterval = mediaServerItem.getHookAliveInterval() + 2;
|
||||
redisUtil.set(key, data, hookAliveInterval);
|
||||
RedisUtil.set(key, data, hookAliveInterval);
|
||||
}
|
||||
|
||||
private MediaServerItem getOneFromDatabase(String mediaServerId) {
|
||||
@@ -672,13 +666,4 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void reloadZlm(){
|
||||
try {
|
||||
zlmRunner.run();
|
||||
Thread.sleep(500);//延迟0.5秒缓冲时间
|
||||
} catch (Exception e) {
|
||||
logger.warn("尝试重连zlm失败!",e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,8 +66,6 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
@Autowired
|
||||
private UserSetting userSetting;
|
||||
|
||||
@Autowired
|
||||
private RedisUtil redis;
|
||||
|
||||
@Autowired
|
||||
private ZLMMediaListManager zlmMediaListManager;
|
||||
@@ -227,7 +225,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
WvpRedisMsg response = WvpRedisMsg.getResponseInstance(userSetting.getServerId(), toId,
|
||||
WvpRedisMsgCmd.REQUEST_PUSH_STREAM, serial, result);
|
||||
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
|
||||
redis.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -246,7 +244,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
WvpRedisMsgCmd.GET_SEND_ITEM, serial, result);
|
||||
|
||||
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
|
||||
redis.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
return;
|
||||
}
|
||||
// 确定流是否在线
|
||||
@@ -269,7 +267,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, result
|
||||
);
|
||||
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
|
||||
redis.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
}, userSetting.getPlatformPlayTimeout());
|
||||
|
||||
// 添加订阅
|
||||
@@ -308,7 +306,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, result
|
||||
);
|
||||
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
|
||||
redis.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -345,7 +343,7 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
wvpResult.setMsg("timeout");
|
||||
errorCallback.handler(wvpResult);
|
||||
}, userSetting.getPlatformPlayTimeout());
|
||||
redis.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -370,6 +368,6 @@ public class RedisGbPlayMsgListener implements MessageListener {
|
||||
callbacksForStartSendRtpStream.remove(key);
|
||||
callbacksForError.remove(key);
|
||||
});
|
||||
redis.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,15 +26,6 @@ public class RedisStreamMsgListener implements MessageListener {
|
||||
|
||||
private final static Logger logger = LoggerFactory.getLogger(RedisStreamMsgListener.class);
|
||||
|
||||
@Autowired
|
||||
private ISIPCommander commander;
|
||||
|
||||
@Autowired
|
||||
private ISIPCommanderForPlatform commanderForPlatform;
|
||||
|
||||
@Autowired
|
||||
private IVideoManagerStorage storage;
|
||||
|
||||
@Autowired
|
||||
private UserSetting userSetting;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user