From 3469271ec25c69e4528b085ba3be7d9d85ec519e Mon Sep 17 00:00:00 2001 From: 64850858 <648540858@qq.com> Date: 星期一, 26 七月 2021 11:40:32 +0800 Subject: [PATCH] 优化集群方案, 每个zlm一套ssrc; 优化集群下的docker接入逻辑; 更正sql脚本; 支持重启不设置设备离线。重启SIP事务不丢失 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java | 25 ++++++++++++------------- 1 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java index aae9cce..d6545b5 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java @@ -2,13 +2,12 @@ import com.alibaba.fastjson.JSONArray; import com.genersoft.iot.vmp.common.StreamInfo; +import com.genersoft.iot.vmp.gb28181.bean.SsrcTransaction; import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; -import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; -import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.service.IMediaServerService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; @@ -37,7 +36,7 @@ import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import org.springframework.web.context.request.async.DeferredResult; -import java.util.Enumeration; +import java.util.List; import java.util.Map; import java.util.UUID; @@ -89,7 +88,7 @@ // 鑾峰彇鍙敤鐨剒lm Device device = storager.queryVideoDevice(deviceId); - IMediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); + MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); PlayResult playResult = playService.play(newMediaServerItem, deviceId, channelId, null, null); return playResult.getResult(); @@ -174,7 +173,7 @@ logger.warn("瑙嗛杞爜API璋冪敤澶辫触锛�, 瑙嗛娴佸凡缁忓仠姝�!"); return new ResponseEntity<String>("鏈壘鍒拌棰戞祦淇℃伅, 瑙嗛娴佸彲鑳藉凡缁忓仠姝�", HttpStatus.OK); } - IMediaServerItem mediaInfo = mediaServerService.getOne(streamInfo.getMediaServerId()); + MediaServerItem mediaInfo = mediaServerService.getOne(streamInfo.getMediaServerId()); JSONObject rtpInfo = zlmresTfulUtils.getRtpInfo(mediaInfo, streamId); if (!rtpInfo.getBoolean("exist")) { logger.warn("瑙嗛杞爜API璋冪敤澶辫触锛�, 瑙嗛娴佸凡鍋滄鎺ㄦ祦!"); @@ -219,7 +218,7 @@ result.put("msg", "mediaServerId is null"); return new ResponseEntity<String>( result.toJSONString(), HttpStatus.BAD_REQUEST); } - IMediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId); + MediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId); if (mediaInfo == null) { result.put("code", 0); result.put("msg", "浣跨敤鐨勬祦濯掍綋宸茬粡鍋滄杩愯"); @@ -307,16 +306,16 @@ logger.debug("鑾峰彇鎵�鏈夌殑ssrc"); } JSONArray objects = new JSONArray(); - for(Map.Entry<String, String> entry: streamSession.getSsrcMap().entrySet()) { - System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); + List<SsrcTransaction> allSsrc = streamSession.getAllSsrc(); + for (SsrcTransaction transaction : allSsrc) { JSONObject jsonObject = new JSONObject(); - String[] keyArray = entry.getKey().split("_"); - jsonObject.put("deviceId", keyArray[0]); - jsonObject.put("channelId", keyArray[1]); - jsonObject.put("ssrc", entry.getValue()); - jsonObject.put("streamId", streamSession.getStreamIdMap().get(entry.getKey())); + jsonObject.put("deviceId", transaction.getDeviceId()); + jsonObject.put("channelId", transaction.getChannelId()); + jsonObject.put("ssrc", transaction.getSsrc()); + jsonObject.put("streamId", transaction.getStreamId()); objects.add(jsonObject); } + WVPResult<JSONObject> result = new WVPResult<>(); result.setCode(0); result.setMsg("success"); -- Gitblit v1.8.0