wvp-GB28181-pro/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java

68 lines
2.6 KiB
Java
Executable File
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.genersoft.iot.vmp.media;
import com.genersoft.iot.vmp.conf.MediaConfig;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
import com.genersoft.iot.vmp.media.service.IMediaServerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 启动是从配置文件加载节点信息,以及发送个节点状态管理去控制节点状态
*/
@Slf4j
@Component
@Order(value=12)
public class MediaServerConfig implements CommandLineRunner {
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
@Autowired
private IMediaServerService mediaServerService;
@Autowired
private MediaConfig mediaConfig;
@Autowired
private UserSetting userSetting;
@Override
public void run(String... strings) throws Exception {
// 清理所有在线节点的缓存信息
mediaServerService.clearMediaServerForOnline();
MediaServer defaultMediaServer = mediaServerService.getDefaultMediaServer();
MediaServer mediaSerItemInConfig = mediaConfig.getMediaSerItem();
mediaSerItemInConfig.setServerId(userSetting.getServerId());
if (defaultMediaServer != null && mediaSerItemInConfig.getId().equals(defaultMediaServer.getId())) {
mediaServerService.update(mediaSerItemInConfig);
}else {
if (defaultMediaServer != null) {
mediaServerService.delete(defaultMediaServer);
}
MediaServer mediaServerItem = mediaServerService.getOneFromDatabase(mediaSerItemInConfig.getId());
if (mediaServerItem == null) {
mediaServerService.add(mediaSerItemInConfig);
}else {
mediaServerService.update(mediaSerItemInConfig);
}
}
// 发送媒体节点变化事件
mediaServerService.syncCatchFromDatabase();
// 获取所有的zlm 并开启主动连接
List<MediaServer> all = mediaServerService.getAllFromDatabase();
log.info("[媒体节点] 加载节点列表, 共{}个节点", all.size());
MediaServerChangeEvent event = new MediaServerChangeEvent(this);
event.setMediaServerItemList(all);
applicationEventPublisher.publishEvent(event);
}
}