Commit f9b8ea6573126f913da80be5c507c21c907246ee
Merge remote-tracking branch 'github/wvp-28181-2.0' into wvp-28181-2.0
Showing
5 changed files
with
84 additions
and
1 deletions
pom.xml
| @@ -228,6 +228,10 @@ | @@ -228,6 +228,10 @@ | ||
| 228 | <artifactId>spring-boot-starter-test</artifactId> | 228 | <artifactId>spring-boot-starter-test</artifactId> |
| 229 | <!-- <scope>test</scope>--> | 229 | <!-- <scope>test</scope>--> |
| 230 | </dependency> | 230 | </dependency> |
| 231 | + <dependency> | ||
| 232 | + <groupId>org.projectlombok</groupId> | ||
| 233 | + <artifactId>lombok</artifactId> | ||
| 234 | + </dependency> | ||
| 231 | </dependencies> | 235 | </dependencies> |
| 232 | 236 | ||
| 233 | 237 |
src/main/java/com/genersoft/iot/vmp/gb28181/event/EventPublisher.java
| @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | ||
| 5 | import com.genersoft.iot.vmp.gb28181.bean.GbStream; | 5 | import com.genersoft.iot.vmp.gb28181.bean.GbStream; |
| 6 | import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent; | 6 | import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent; |
| 7 | import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent; | 7 | import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent; |
| 8 | +import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformCycleRegisterEvent; | ||
| 8 | import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent; | 9 | import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent; |
| 9 | import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; | 10 | import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; |
| 10 | import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent; | 11 | import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent; |
| @@ -67,6 +68,16 @@ public class EventPublisher { | @@ -67,6 +68,16 @@ public class EventPublisher { | ||
| 67 | platformNotRegisterEvent.setPlatformGbID(platformGbId); | 68 | platformNotRegisterEvent.setPlatformGbID(platformGbId); |
| 68 | applicationEventPublisher.publishEvent(platformNotRegisterEvent); | 69 | applicationEventPublisher.publishEvent(platformNotRegisterEvent); |
| 69 | } | 70 | } |
| 71 | + | ||
| 72 | + /** | ||
| 73 | + * 平台周期注册事件 | ||
| 74 | + * @param paltformGbId | ||
| 75 | + */ | ||
| 76 | + public void platformRegisterCycleEventPublish(String paltformGbId) { | ||
| 77 | + PlatformCycleRegisterEvent platformCycleRegisterEvent = new PlatformCycleRegisterEvent(this); | ||
| 78 | + platformCycleRegisterEvent.setPlatformGbID(paltformGbId); | ||
| 79 | + applicationEventPublisher.publishEvent(platformCycleRegisterEvent); | ||
| 80 | + } | ||
| 70 | 81 | ||
| 71 | /** | 82 | /** |
| 72 | * 设备报警事件 | 83 | * 设备报警事件 |
src/main/java/com/genersoft/iot/vmp/gb28181/event/offline/KeepaliveTimeoutListenerForPlatform.java
| @@ -66,7 +66,7 @@ public class KeepaliveTimeoutListenerForPlatform extends RedisKeyExpirationEvent | @@ -66,7 +66,7 @@ public class KeepaliveTimeoutListenerForPlatform extends RedisKeyExpirationEvent | ||
| 66 | }else if (expiredKey.startsWith(PLATFORM_REGISTER_PREFIX)) { | 66 | }else if (expiredKey.startsWith(PLATFORM_REGISTER_PREFIX)) { |
| 67 | String platformGBId = expiredKey.substring(PLATFORM_REGISTER_PREFIX.length(),expiredKey.length()); | 67 | String platformGBId = expiredKey.substring(PLATFORM_REGISTER_PREFIX.length(),expiredKey.length()); |
| 68 | 68 | ||
| 69 | - publisher.platformNotRegisterEventPublish(platformGBId); | 69 | + publisher.platformRegisterCycleEventPublish(platformGBId); |
| 70 | }else if (expiredKey.startsWith(KEEPLIVEKEY_PREFIX)){ | 70 | }else if (expiredKey.startsWith(KEEPLIVEKEY_PREFIX)){ |
| 71 | String deviceId = expiredKey.substring(KEEPLIVEKEY_PREFIX.length(),expiredKey.length()); | 71 | String deviceId = expiredKey.substring(KEEPLIVEKEY_PREFIX.length(),expiredKey.length()); |
| 72 | publisher.outlineEventPublish(deviceId, KEEPLIVEKEY_PREFIX); | 72 | publisher.outlineEventPublish(deviceId, KEEPLIVEKEY_PREFIX); |
src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformCycleRegisterEvent.java
0 → 100644
| 1 | +package com.genersoft.iot.vmp.gb28181.event.platformNotRegister; | ||
| 2 | + | ||
| 3 | +import org.springframework.context.ApplicationEvent; | ||
| 4 | + | ||
| 5 | +public class PlatformCycleRegisterEvent extends ApplicationEvent { | ||
| 6 | + /** | ||
| 7 | + * Add default serial version ID | ||
| 8 | + */ | ||
| 9 | + private static final long serialVersionUID = 1L; | ||
| 10 | + | ||
| 11 | + private String platformGbID; | ||
| 12 | + | ||
| 13 | + public String getPlatformGbID() { | ||
| 14 | + return platformGbID; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + public void setPlatformGbID(String platformGbID) { | ||
| 18 | + this.platformGbID = platformGbID; | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public PlatformCycleRegisterEvent(Object source) { | ||
| 22 | + super(source); | ||
| 23 | + } | ||
| 24 | +} |
src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformCycleRegisterEventLister.java
0 → 100644
| 1 | +package com.genersoft.iot.vmp.gb28181.event.platformNotRegister; | ||
| 2 | + | ||
| 3 | +import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; | ||
| 4 | +import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; | ||
| 5 | +import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; | ||
| 6 | +import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | ||
| 7 | +import lombok.extern.slf4j.Slf4j; | ||
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 9 | +import org.springframework.context.ApplicationListener; | ||
| 10 | +import org.springframework.stereotype.Component; | ||
| 11 | + | ||
| 12 | +import java.util.Timer; | ||
| 13 | +import java.util.TimerTask; | ||
| 14 | + | ||
| 15 | +@Slf4j | ||
| 16 | +@Component | ||
| 17 | +public class PlatformCycleRegisterEventLister implements ApplicationListener<PlatformCycleRegisterEvent> { | ||
| 18 | + @Autowired | ||
| 19 | + private IVideoManagerStorager storager; | ||
| 20 | + @Autowired | ||
| 21 | + private ISIPCommanderForPlatform sipCommanderFroPlatform; | ||
| 22 | + | ||
| 23 | + @Override | ||
| 24 | + public void onApplicationEvent(PlatformCycleRegisterEvent event) { | ||
| 25 | + log.info("上级平台周期注册事件"); | ||
| 26 | + ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(event.getPlatformGbID()); | ||
| 27 | + if (parentPlatform == null) { | ||
| 28 | + log.info("[ 平台未注册事件 ] 平台已经删除!!! 平台国标ID:" + event.getPlatformGbID()); | ||
| 29 | + return; | ||
| 30 | + } | ||
| 31 | + Timer timer = new Timer(); | ||
| 32 | + SipSubscribe.Event okEvent = (responseEvent)->{ | ||
| 33 | + timer.cancel(); | ||
| 34 | + }; | ||
| 35 | + sipCommanderFroPlatform.register(parentPlatform, null, okEvent); | ||
| 36 | + timer.schedule(new TimerTask() { | ||
| 37 | + @Override | ||
| 38 | + public void run() { | ||
| 39 | + log.info("[平台注册]再次向平台注册,平台国标ID:" + event.getPlatformGbID()); | ||
| 40 | + sipCommanderFroPlatform.register(parentPlatform, null, okEvent); | ||
| 41 | + } | ||
| 42 | + }, 15*1000 ,Long.parseLong(parentPlatform.getExpires())* 1000); | ||
| 43 | + } | ||
| 44 | +} |