From 2b3b7dbc7973def2342eecd8caf7514f0a367c1b Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期五, 16 四月 2021 17:52:30 +0800 Subject: [PATCH] 使用设备Id+通道Id作为session的识别标识,解决点播异常时无法释放session的问题 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java index daa5557..11c210e 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java @@ -84,7 +84,7 @@ StreamInfo streamInfo = redisCatchStorage.queryPlaybackByDevice(deviceId, channelId); if (streamInfo != null) { // 鍋滄涔嬪墠鐨勫洖鏀� - cmder.streamByeCmd(streamInfo.getStreamId()); + cmder.streamByeCmd(deviceId, channelId); } resultHolder.put(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid, result); cmder.playbackStreamCmd(device, channelId, startTime, endTime, (JSONObject response) -> { @@ -103,20 +103,22 @@ @ApiOperation("鍋滄瑙嗛鍥炴斁") @ApiImplicitParams({ - @ApiImplicitParam(name = "ssrc", value = "瑙嗛娴佹爣璇�", dataTypeClass = String.class), + @ApiImplicitParam(name = "deviceId", value = "璁惧ID", dataTypeClass = String.class), + @ApiImplicitParam(name = "channelId", value = "閫氶亾ID", dataTypeClass = String.class), }) - @GetMapping("/stop/{ssrc}") - public ResponseEntity<String> playStop(@PathVariable String ssrc) { + @GetMapping("/stop/{deviceId}/{channelId}") + public ResponseEntity<String> playStop(@PathVariable String deviceId, @PathVariable String channelId) { - cmder.streamByeCmd(ssrc); + cmder.streamByeCmd(deviceId, channelId); if (logger.isDebugEnabled()) { - logger.debug(String.format("璁惧褰曞儚鍥炴斁鍋滄 API璋冪敤锛宻src锛�%s", ssrc)); + logger.debug(String.format("璁惧褰曞儚鍥炴斁鍋滄 API璋冪敤锛宒eviceId/channelId锛�%s/%s", deviceId, channelId)); } - if (ssrc != null) { + if (deviceId != null && channelId != null) { JSONObject json = new JSONObject(); - json.put("ssrc", ssrc); + json.put("deviceId", deviceId); + json.put("channelId", channelId); return new ResponseEntity<String>(json.toString(), HttpStatus.OK); } else { logger.warn("璁惧褰曞儚鍥炴斁鍋滄API璋冪敤澶辫触锛�"); -- Gitblit v1.8.0