648540858
2021-12-07 9b1af8ef1396de45884fe86c56844714045b82ec
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
@@ -7,6 +7,7 @@
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +41,9 @@
    private IMediaServerService mediaServerService;
    @Autowired
    private IRedisCatchStorage redisCatchStorage;
    @Autowired
    private MediaConfig mediaConfig;
    @Qualifier("taskExecutor")
@@ -49,8 +53,13 @@
    @Override
    public void run(String... strings) throws Exception {
        mediaServerService.clearMediaServerForOnline();
        if (mediaServerService.getDefaultMediaServer() == null) {
        MediaServerItem defaultMediaServer = mediaServerService.getDefaultMediaServer();
        if (defaultMediaServer == null) {
            mediaServerService.addToDatabase(mediaConfig.getMediaSerItem());
        }else {
            MediaServerItem mediaSerItem = mediaConfig.getMediaSerItem();
            mediaSerItem.setId(defaultMediaServer.getId());
            mediaServerService.updateToDatabase(mediaSerItem);
        }
        // 订阅 zlm启动事件, 新的zlm也会从这里进入系统
@@ -61,12 +70,18 @@
                if (startGetMedia != null) {
                    startGetMedia.remove(zlmServerConfig.getGeneralMediaServerId());
                }
                mediaServerService.handLeZLMServerConfig(zlmServerConfig);
                mediaServerService.zlmServerOnline(zlmServerConfig);
            }
        });
        // TODO 订阅 zlm保活事件, 当zlm离线时做业务的处理
        // 订阅 zlm保活事件, 当zlm离线时做业务的处理
        hookSubscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_server_keepalive,null,
                (MediaServerItem mediaServerItem, JSONObject response)->{
                    String mediaServerId = response.getString("mediaServerId");
                    if (mediaServerId !=null ) {
                        mediaServerService.updateMediaServerKeepalive(mediaServerId, response.getJSONObject("data"));
                    }
                });
        // 获取zlm信息
        logger.info("等待默认zlm接入...");
@@ -107,7 +122,7 @@
            zlmServerConfig.setIp(mediaServerItem.getIp());
            zlmServerConfig.setHttpPort(mediaServerItem.getHttpPort());
            startGetMedia.remove(mediaServerItem.getId());
            mediaServerService.handLeZLMServerConfig(zlmServerConfig);
            mediaServerService.zlmServerOnline(zlmServerConfig);
        }
    }