修复多zlm节点上线时的空指针异常+单端口收流未设置到zlm的BUG
parent
2cd21a26d4
commit
0ddc374c34
|
@ -184,7 +184,7 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("[收到bye] 来自:{}, 通道: {}, 类型: {}", ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getType());
|
log.info("[收到bye] 来自:{}, 通道: {}, 类型: {}", ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getType());
|
||||||
|
// TODO 结束点播 避免等待
|
||||||
|
|
||||||
if (ssrcTransaction.getPlatformId() != null ) {
|
if (ssrcTransaction.getPlatformId() != null ) {
|
||||||
Platform platform = platformService.queryPlatformByServerGBId(ssrcTransaction.getPlatformId());
|
Platform platform = platformService.queryPlatformByServerGBId(ssrcTransaction.getPlatformId());
|
||||||
|
|
|
@ -273,6 +273,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||||
public void update(MediaServer mediaSerItem) {
|
public void update(MediaServer mediaSerItem) {
|
||||||
mediaServerMapper.update(mediaSerItem);
|
mediaServerMapper.update(mediaSerItem);
|
||||||
MediaServer mediaServerInRedis = getOne(mediaSerItem.getId());
|
MediaServer mediaServerInRedis = getOne(mediaSerItem.getId());
|
||||||
|
// 获取完整数据
|
||||||
MediaServer mediaServerInDataBase = mediaServerMapper.queryOne(mediaSerItem.getId());
|
MediaServer mediaServerInDataBase = mediaServerMapper.queryOne(mediaSerItem.getId());
|
||||||
if (mediaServerInDataBase == null) {
|
if (mediaServerInDataBase == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -350,7 +351,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||||
Set<Object> mediaServerIdSet = redisTemplate.opsForZSet().reverseRange(key, 0, -1);
|
Set<Object> mediaServerIdSet = redisTemplate.opsForZSet().reverseRange(key, 0, -1);
|
||||||
|
|
||||||
List<MediaServer> result = new ArrayList<>();
|
List<MediaServer> result = new ArrayList<>();
|
||||||
if (mediaServerIdSet != null && mediaServerIdSet.size() > 0) {
|
if (mediaServerIdSet != null && !mediaServerIdSet.isEmpty()) {
|
||||||
for (Object mediaServerId : mediaServerIdSet) {
|
for (Object mediaServerId : mediaServerIdSet) {
|
||||||
String mediaServerIdStr = (String) mediaServerId;
|
String mediaServerIdStr = (String) mediaServerId;
|
||||||
String serverKey = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + ":" + mediaServerIdStr;
|
String serverKey = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + ":" + mediaServerIdStr;
|
||||||
|
|
|
@ -129,7 +129,8 @@ public class ZLMMediaServerStatusManager {
|
||||||
}
|
}
|
||||||
if (!offlineZlmPrimaryMap.isEmpty()) {
|
if (!offlineZlmPrimaryMap.isEmpty()) {
|
||||||
for (MediaServer mediaServerItem : offlineZlmPrimaryMap.values()) {
|
for (MediaServer mediaServerItem : offlineZlmPrimaryMap.values()) {
|
||||||
if (offlineZlmTimeMap.get(mediaServerItem.getId()) < System.currentTimeMillis() - 30*60*1000) {
|
if (offlineZlmTimeMap.get(mediaServerItem.getId()) != null
|
||||||
|
&& offlineZlmTimeMap.get(mediaServerItem.getId()) < System.currentTimeMillis() - 30*60*1000) {
|
||||||
offlineZlmsecondaryMap.put(mediaServerItem.getId(), mediaServerItem);
|
offlineZlmsecondaryMap.put(mediaServerItem.getId(), mediaServerItem);
|
||||||
offlineZlmPrimaryMap.remove(mediaServerItem.getId());
|
offlineZlmPrimaryMap.remove(mediaServerItem.getId());
|
||||||
continue;
|
continue;
|
||||||
|
@ -281,6 +282,8 @@ public class ZLMMediaServerStatusManager {
|
||||||
// 等zlm支持给每个rtpServer设置关闭音频的时候可以不设置此选项
|
// 等zlm支持给每个rtpServer设置关闭音频的时候可以不设置此选项
|
||||||
if (mediaServerItem.isRtpEnable() && !ObjectUtils.isEmpty(mediaServerItem.getRtpPortRange())) {
|
if (mediaServerItem.isRtpEnable() && !ObjectUtils.isEmpty(mediaServerItem.getRtpPortRange())) {
|
||||||
param.put("rtp_proxy.port_range", mediaServerItem.getRtpPortRange().replace(",", "-"));
|
param.put("rtp_proxy.port_range", mediaServerItem.getRtpPortRange().replace(",", "-"));
|
||||||
|
}else {
|
||||||
|
param.put("rtp_proxy.port", mediaServerItem.getRtpProxyPort());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ObjectUtils.isEmpty(mediaServerItem.getRecordPath())) {
|
if (!ObjectUtils.isEmpty(mediaServerItem.getRecordPath())) {
|
||||||
|
|
|
@ -228,7 +228,7 @@ public class ServerController {
|
||||||
public List<MediaServerLoad> getMediaLoad() {
|
public List<MediaServerLoad> getMediaLoad() {
|
||||||
List<MediaServerLoad> result = new ArrayList<>();
|
List<MediaServerLoad> result = new ArrayList<>();
|
||||||
List<MediaServer> allOnline = mediaServerService.getAllOnline();
|
List<MediaServer> allOnline = mediaServerService.getAllOnline();
|
||||||
if (allOnline.size() == 0) {
|
if (allOnline.isEmpty()) {
|
||||||
return result;
|
return result;
|
||||||
}else {
|
}else {
|
||||||
for (MediaServer mediaServerItem : allOnline) {
|
for (MediaServer mediaServerItem : allOnline) {
|
||||||
|
|
Loading…
Reference in New Issue