优化多wvp国标级联推流时推流信息的清理
parent
e85cef4345
commit
407a5edebf
|
@ -516,15 +516,15 @@ public class ZLMHttpHookListener {
|
||||||
if (sendRtpItem == null) {
|
if (sendRtpItem == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sendRtpItem.getApp().equals(param.getApp())) {
|
if (sendRtpItem.getApp().equals(param.getApp())) {
|
||||||
|
// 在hook收到这个消息,说明发流一定是本级完成的。
|
||||||
|
redisCatchStorage.deleteSendRTPServer(sendRtpItem);
|
||||||
|
ssrcFactory.releaseSsrc(sendRtpItem.getMediaServerId(), sendRtpItem.getSsrc());
|
||||||
ParentPlatform platform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId());
|
ParentPlatform platform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId());
|
||||||
Device device = deviceService.getDevice(sendRtpItem.getPlatformId());
|
Device device = deviceService.getDevice(sendRtpItem.getPlatformId());
|
||||||
try {
|
try {
|
||||||
if (platform != null) {
|
if (platform != null) {
|
||||||
commanderFroPlatform.streamByeCmd(platform, sendRtpItem);
|
commanderFroPlatform.streamByeCmd(platform, sendRtpItem);
|
||||||
redisCatchStorage.deleteSendRTPServer(sendRtpItem.getPlatformId(), sendRtpItem.getChannelId(),
|
|
||||||
sendRtpItem.getCallId(), sendRtpItem.getStream());
|
|
||||||
redisCatchStorage.sendPlatformStopPlayMsg(sendRtpItem, platform);
|
redisCatchStorage.sendPlatformStopPlayMsg(sendRtpItem, platform);
|
||||||
} else if (device != null) {
|
} else if (device != null) {
|
||||||
cmder.streamByeCmd(device, sendRtpItem.getChannelId(), param.getStream(), sendRtpItem.getCallId());
|
cmder.streamByeCmd(device, sendRtpItem.getChannelId(), param.getStream(), sendRtpItem.getCallId());
|
||||||
|
@ -589,8 +589,8 @@ public class ZLMHttpHookListener {
|
||||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||||
logger.error("[命令发送失败] 国标级联 发送BYE: {}", e.getMessage());
|
logger.error("[命令发送失败] 国标级联 发送BYE: {}", e.getMessage());
|
||||||
}
|
}
|
||||||
redisCatchStorage.deleteSendRTPServer(parentPlatform.getServerGBId(), sendRtpItem.getChannelId(),
|
redisCatchStorage.deleteSendRTPServer(sendRtpItem);
|
||||||
sendRtpItem.getCallId(), sendRtpItem.getStream());
|
ssrcFactory.releaseSsrc(sendRtpItem.getMediaServerId(), sendRtpItem.getSsrc());
|
||||||
if (InviteStreamType.PUSH == sendRtpItem.getPlayType()) {
|
if (InviteStreamType.PUSH == sendRtpItem.getPlayType()) {
|
||||||
redisCatchStorage.sendPlatformStopPlayMsg(sendRtpItem, parentPlatform);
|
redisCatchStorage.sendPlatformStopPlayMsg(sendRtpItem, parentPlatform);
|
||||||
}
|
}
|
||||||
|
@ -820,17 +820,18 @@ public class ZLMHttpHookListener {
|
||||||
}
|
}
|
||||||
taskExecutor.execute(() -> {
|
taskExecutor.execute(() -> {
|
||||||
List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(param.getStream());
|
List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(param.getStream());
|
||||||
if (sendRtpItems.size() > 0) {
|
if (!sendRtpItems.isEmpty()) {
|
||||||
for (SendRtpItem sendRtpItem : sendRtpItems) {
|
for (SendRtpItem sendRtpItem : sendRtpItems) {
|
||||||
ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId());
|
ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId());
|
||||||
ssrcFactory.releaseSsrc(sendRtpItem.getMediaServerId(), sendRtpItem.getSsrc());
|
if(parentPlatform != null) {
|
||||||
try {
|
try {
|
||||||
commanderFroPlatform.streamByeCmd(parentPlatform, sendRtpItem.getCallId());
|
commanderFroPlatform.streamByeCmd(parentPlatform, sendRtpItem.getCallId());
|
||||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||||
logger.error("[命令发送失败] 国标级联 发送BYE: {}", e.getMessage());
|
logger.error("[命令发送失败] 国标级联 发送BYE: {}", e.getMessage());
|
||||||
}
|
}
|
||||||
redisCatchStorage.deleteSendRTPServer(parentPlatform.getServerGBId(), sendRtpItem.getChannelId(),
|
}
|
||||||
sendRtpItem.getCallId(), sendRtpItem.getStream());
|
ssrcFactory.releaseSsrc(sendRtpItem.getMediaServerId(), sendRtpItem.getSsrc());
|
||||||
|
redisCatchStorage.deleteSendRTPServer(sendRtpItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue