From 5d901b5e3f033e8b04e53420d68626cbd87431c8 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 06 五月 2022 10:12:34 +0800 Subject: [PATCH] 使用阿里代码规范。规范代码写法 --- src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 53 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java index a20828d..14ed76a 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java @@ -1,16 +1,26 @@ package com.genersoft.iot.vmp.gb28181.event.platformNotRegister; +import com.genersoft.iot.vmp.conf.DynamicTask; +import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; +import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem; +import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.service.IMediaServerService; +import com.genersoft.iot.vmp.storager.IRedisCatchStorage; +import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; +import java.util.*; + /** - * @Description: 骞冲彴鏈敞鍐屼簨浠�,鏉ユ簮鏈変簩: + * @description: 骞冲彴鏈敞鍐屼簨浠�,鏉ユ簮鏈変簩: * 1銆佸钩鍙版柊娣诲姞 * 2銆佸钩鍙板績璺宠秴鏃� * @author: panll @@ -22,10 +32,23 @@ private final static Logger logger = LoggerFactory.getLogger(PlatformNotRegisterEventLister.class); @Autowired - private IVideoManagerStorager storager; + private IVideoManagerStorage storager; + @Autowired + private IRedisCatchStorage redisCatchStorage; + @Autowired + private IMediaServerService mediaServerService; @Autowired private SIPCommanderFroPlatform sipCommanderFroPlatform; + + @Autowired + private ZLMRTPServerFactory zlmrtpServerFactory; + + @Autowired + private SipConfig config; + + @Autowired + private DynamicTask dynamicTask; // @Autowired // private RedisUtil redis; @@ -33,13 +56,36 @@ @Override public void onApplicationEvent(PlatformNotRegisterEvent event) { - logger.debug("骞冲彴鏈敞鍐屼簨浠惰Е鍙戯紝骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); + logger.info("[ 骞冲彴鏈敞鍐屼簨浠� ]骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); - ParentPlatform parentPlatform = storager.queryParentPlatById(event.getPlatformGbID()); + ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(event.getPlatformGbID()); if (parentPlatform == null) { - logger.debug("骞冲彴鏈敞鍐屼簨浠惰Е鍙戯紝浣嗗钩鍙板凡缁忓垹闄�!!! 骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); + logger.info("[ 骞冲彴鏈敞鍐屼簨浠� ] 骞冲彴宸茬粡鍒犻櫎!!! 骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); return; } - sipCommanderFroPlatform.register(parentPlatform); + // 鏌ヨ鏄惁鏈夋帹娴侊紝 濡傛灉鏈夊垯閮藉仠姝� + List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServer(event.getPlatformGbID()); + logger.info("[ 骞冲彴鏈敞鍐屼簨浠� ] 鍋滄[ {} ]鐨勬墍鏈夋帹娴乻ize", sendRtpItems.size()); + if (sendRtpItems != null && sendRtpItems.size() > 0) { + logger.info("[ 骞冲彴鏈敞鍐屼簨浠� ] 鍋滄[ {} ]鐨勬墍鏈夋帹娴�", event.getPlatformGbID()); + for (SendRtpItem sendRtpItem : sendRtpItems) { + redisCatchStorage.deleteSendRTPServer(event.getPlatformGbID(), sendRtpItem.getChannelId(), null, null); + MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId()); + Map<String, Object> param = new HashMap<>(); + param.put("vhost", "__defaultVhost__"); + param.put("app", sendRtpItem.getApp()); + param.put("stream", sendRtpItem.getStreamId()); + zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param); + } + + } + String taskKey = "platform-not-register-" + parentPlatform.getServerGBId(); + SipSubscribe.Event okEvent = (responseEvent)->{ + dynamicTask.stop(taskKey); + }; + dynamicTask.startCron(taskKey, ()->{ + logger.info("[骞冲彴娉ㄥ唽]鍐嶆鍚戝钩鍙版敞鍐岋紝骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); + sipCommanderFroPlatform.register(parentPlatform, null, okEvent); + }, config.getRegisterTimeInterval()* 1000); } } -- Gitblit v1.8.0