From 0209dc89c9d5a65aaa1c6e3ae8140dfdb5020dcb Mon Sep 17 00:00:00 2001 From: SaltFish <42058801+SaltFish001@users.noreply.github.com> Date: 星期四, 10 二月 2022 10:29:36 +0800 Subject: [PATCH] Update MediaServiceImpl.java --- src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 31 +++++++++++++++++++++++++++---- 1 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index 5b17068..ccb2520 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -14,8 +14,11 @@ import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; import com.genersoft.iot.vmp.service.IMediaServerService; +import com.genersoft.iot.vmp.service.IStreamProxyService; import com.genersoft.iot.vmp.service.bean.SSRCInfo; +import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.storager.dao.MediaServerMapper; import com.genersoft.iot.vmp.utils.redis.JedisUtil; import com.genersoft.iot.vmp.utils.redis.RedisUtil; @@ -69,6 +72,12 @@ @Autowired private RedisUtil redisUtil; + + @Autowired + private IVideoManagerStorager storager; + + @Autowired + private IStreamProxyService streamProxyService; @Autowired private EventPublisher publisher; @@ -231,6 +240,7 @@ public List<MediaServerItem> getAllOnline() { String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetup.getServerId(); Set<String> mediaServerIdSet = redisUtil.zRevRange(key, 0, -1); + List<MediaServerItem> result = new ArrayList<>(); if (mediaServerIdSet != null && mediaServerIdSet.size() > 0) { for (String mediaServerId : mediaServerIdSet) { @@ -238,6 +248,7 @@ result.add((MediaServerItem) redisUtil.get(serverKey)); } } + Collections.reverse(result); return result; } @@ -373,7 +384,8 @@ redisUtil.set(key, serverItem); resetOnlineServerItem(serverItem); updateMediaServerKeepalive(serverItem.getId(), null); - setZLMConfig(serverItem); + setZLMConfig(serverItem, "0".equals(zlmServerConfig.getHookEnable())); + publisher.zlmOnlineEventPublish(serverItem.getId()); } @@ -448,9 +460,10 @@ /** * 瀵箊lm鏈嶅姟鍣ㄨ繘琛屽熀纭�閰嶇疆 * @param mediaServerItem 鏈嶅姟ID + * @param restart 鏄惁閲嶅惎zlm */ @Override - public void setZLMConfig(MediaServerItem mediaServerItem) { + public void setZLMConfig(MediaServerItem mediaServerItem, boolean restart) { logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); String protocol = sslEnabled ? "https" : "http"; @@ -483,12 +496,22 @@ JSONObject responseJSON = zlmresTfulUtils.setServerConfig(mediaServerItem, param); if (responseJSON != null && responseJSON.getInteger("code") == 0) { - logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm鎴愬姛", - mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); + if (restart) { + logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm鎴愬姛, 寮�濮嬮噸鍚互淇濊瘉閰嶇疆鐢熸晥", + mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); + zlmresTfulUtils.restartServer(mediaServerItem); + }else { + logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm鎴愬姛", + mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); + } + + }else { logger.info("[ ZLM锛歿} ]-[ {}:{} ]璁剧疆zlm澶辫触", mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); } + + } -- Gitblit v1.8.0