pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/gb28181/event/EventPublisher.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/KeepaliveTimeoutListenerForPlatform.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformCycleRegisterEvent.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformCycleRegisterEventLister.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -228,6 +228,10 @@ <artifactId>spring-boot-starter-test</artifactId> <!-- <scope>test</scope>--> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> src/main/java/com/genersoft/iot/vmp/gb28181/event/EventPublisher.java
@@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.GbStream; import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent; import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent; import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformCycleRegisterEvent; import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent; import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent; @@ -67,6 +68,16 @@ platformNotRegisterEvent.setPlatformGbID(platformGbId); applicationEventPublisher.publishEvent(platformNotRegisterEvent); } /** * 平台周期注册事件 * @param paltformGbId */ public void platformRegisterCycleEventPublish(String paltformGbId) { PlatformCycleRegisterEvent platformCycleRegisterEvent = new PlatformCycleRegisterEvent(this); platformCycleRegisterEvent.setPlatformGbID(paltformGbId); applicationEventPublisher.publishEvent(platformCycleRegisterEvent); } /** * 设备报警事件 src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/KeepaliveTimeoutListenerForPlatform.java
@@ -66,7 +66,7 @@ }else if (expiredKey.startsWith(PLATFORM_REGISTER_PREFIX)) { String platformGBId = expiredKey.substring(PLATFORM_REGISTER_PREFIX.length(),expiredKey.length()); publisher.platformNotRegisterEventPublish(platformGBId); publisher.platformRegisterCycleEventPublish(platformGBId); }else if (expiredKey.startsWith(KEEPLIVEKEY_PREFIX)){ String deviceId = expiredKey.substring(KEEPLIVEKEY_PREFIX.length(),expiredKey.length()); publisher.outlineEventPublish(deviceId, KEEPLIVEKEY_PREFIX); src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformCycleRegisterEvent.java
New file @@ -0,0 +1,24 @@ package com.genersoft.iot.vmp.gb28181.event.platformNotRegister; import org.springframework.context.ApplicationEvent; public class PlatformCycleRegisterEvent extends ApplicationEvent { /** * Add default serial version ID */ private static final long serialVersionUID = 1L; private String platformGbID; public String getPlatformGbID() { return platformGbID; } public void setPlatformGbID(String platformGbID) { this.platformGbID = platformGbID; } public PlatformCycleRegisterEvent(Object source) { super(source); } } src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformCycleRegisterEventLister.java
New file @@ -0,0 +1,44 @@ package com.genersoft.iot.vmp.gb28181.event.platformNotRegister; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; import java.util.Timer; import java.util.TimerTask; @Slf4j @Component public class PlatformCycleRegisterEventLister implements ApplicationListener<PlatformCycleRegisterEvent> { @Autowired private IVideoManagerStorager storager; @Autowired private ISIPCommanderForPlatform sipCommanderFroPlatform; @Override public void onApplicationEvent(PlatformCycleRegisterEvent event) { log.info("上级平台周期注册事件"); ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(event.getPlatformGbID()); if (parentPlatform == null) { log.info("[ 平台未注册事件 ] 平台已经删除!!! 平台国标ID:" + event.getPlatformGbID()); return; } Timer timer = new Timer(); SipSubscribe.Event okEvent = (responseEvent)->{ timer.cancel(); }; sipCommanderFroPlatform.register(parentPlatform, null, okEvent); timer.schedule(new TimerTask() { @Override public void run() { log.info("[平台注册]再次向平台注册,平台国标ID:" + event.getPlatformGbID()); sipCommanderFroPlatform.register(parentPlatform, null, okEvent); } }, 15*1000 ,Long.parseLong(parentPlatform.getExpires())* 1000); } }