17 changed files with 156 additions and 57 deletions
			
			
		@ -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