From 9b1af8ef1396de45884fe86c56844714045b82ec Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 07 十二月 2021 21:13:55 +0800 Subject: [PATCH] 适配zlm的hook保活 --- src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java index 634f670..7c17c2a 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.TypeReference; import com.genersoft.iot.vmp.gb28181.bean.GbStream; import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; +import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; @@ -12,6 +13,7 @@ import com.genersoft.iot.vmp.service.IStreamPushService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.dao.GbStreamMapper; +import com.genersoft.iot.vmp.storager.dao.PlatformGbStreamMapper; import com.genersoft.iot.vmp.storager.dao.StreamPushMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -31,6 +33,9 @@ @Autowired private StreamPushMapper streamPushMapper; + + @Autowired + private PlatformGbStreamMapper platformGbStreamMapper; @Autowired private ZLMRESTfulUtils zlmresTfulUtils; @@ -80,6 +85,7 @@ streamPushItem.setCreateStamp(item.getCreateStamp()); streamPushItem.setAliveSecond(item.getAliveSecond()); streamPushItem.setStatus(true); + streamPushItem.setStreamType("push"); streamPushItem.setVhost(item.getVhost()); return streamPushItem; } @@ -116,4 +122,32 @@ return streamPushMapper.selectOne(app, streamId); } + + @Override + public boolean stop(String app, String streamId) { + StreamPushItem streamPushItem = streamPushMapper.selectOne(app, streamId); + int delStream = streamPushMapper.del(app, streamId); + gbStreamMapper.del(app, streamId); + platformGbStreamMapper.delByAppAndStream(app, streamId); + if (delStream > 0) { + MediaServerItem mediaServerItem = mediaServerService.getOne(streamPushItem.getMediaServerId()); + zlmresTfulUtils.closeStreams(mediaServerItem,app, streamId); + } + return true; + } + + @Override + public void zlmServerOnline(ZLMServerConfig zlmServerConfig) { + // 浼间箮娌″暐闇�瑕佸仛鐨� + } + + @Override + public void zlmServerOffline(String mediaServerId) { + // 绉婚櫎娌℃湁serverId鐨勬帹娴� + streamPushMapper.deleteWithoutGBId(mediaServerId); + // 鍏朵粬鐨勬祦璁剧疆鏈惎鐢� + gbStreamMapper.updateStatusByMediaServerId(mediaServerId, false); + // 绉婚櫎redis鍐呮祦鐨勪俊鎭� + redisCatchStorage.removeStream(mediaServerId, "PUSH"); + } } -- Gitblit v1.8.0