commit
7cb74dbe51
4
pom.xml
4
pom.xml
|
@ -228,6 +228,10 @@
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<!-- <scope>test</scope>-->
|
<!-- <scope>test</scope>-->
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
||||||
import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent;
|
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.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.platformNotRegister.PlatformNotRegisterEvent;
|
||||||
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
|
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
|
||||||
import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent;
|
import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent;
|
||||||
|
@ -67,6 +68,16 @@ public class EventPublisher {
|
||||||
platformNotRegisterEvent.setPlatformGbID(platformGbId);
|
platformNotRegisterEvent.setPlatformGbID(platformGbId);
|
||||||
applicationEventPublisher.publishEvent(platformNotRegisterEvent);
|
applicationEventPublisher.publishEvent(platformNotRegisterEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 平台周期注册事件
|
||||||
|
* @param paltformGbId
|
||||||
|
*/
|
||||||
|
public void platformRegisterCycleEventPublish(String paltformGbId) {
|
||||||
|
PlatformCycleRegisterEvent platformCycleRegisterEvent = new PlatformCycleRegisterEvent(this);
|
||||||
|
platformCycleRegisterEvent.setPlatformGbID(paltformGbId);
|
||||||
|
applicationEventPublisher.publishEvent(platformCycleRegisterEvent);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备报警事件
|
* 设备报警事件
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class KeepaliveTimeoutListenerForPlatform extends RedisKeyExpirationEvent
|
||||||
}else if (expiredKey.startsWith(PLATFORM_REGISTER_PREFIX)) {
|
}else if (expiredKey.startsWith(PLATFORM_REGISTER_PREFIX)) {
|
||||||
String platformGBId = expiredKey.substring(PLATFORM_REGISTER_PREFIX.length(),expiredKey.length());
|
String platformGBId = expiredKey.substring(PLATFORM_REGISTER_PREFIX.length(),expiredKey.length());
|
||||||
|
|
||||||
publisher.platformNotRegisterEventPublish(platformGBId);
|
publisher.platformRegisterCycleEventPublish(platformGBId);
|
||||||
}else if (expiredKey.startsWith(KEEPLIVEKEY_PREFIX)){
|
}else if (expiredKey.startsWith(KEEPLIVEKEY_PREFIX)){
|
||||||
String deviceId = expiredKey.substring(KEEPLIVEKEY_PREFIX.length(),expiredKey.length());
|
String deviceId = expiredKey.substring(KEEPLIVEKEY_PREFIX.length(),expiredKey.length());
|
||||||
publisher.outlineEventPublish(deviceId, KEEPLIVEKEY_PREFIX);
|
publisher.outlineEventPublish(deviceId, KEEPLIVEKEY_PREFIX);
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue