From f2279859b367fda6108a5ea22c572d38d89d338d Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期六, 26 十二月 2020 16:44:27 +0800
Subject: [PATCH] 增加对水星IPC的兼容 增加对SIP错误的订阅,刷新通道或点播或回放出现sip错误时及时返回给页面 优化UI,增加按钮loading
---
src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
index 34a02ee..65e294a 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
@@ -4,6 +4,7 @@
import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
+import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,8 @@
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
+
+import javax.sip.message.Response;
@CrossOrigin
@RestController
@@ -86,11 +89,25 @@
if (logger.isDebugEnabled()) {
}
- logger.debug("璁惧淇℃伅鍚屾API璋冪敤锛宒eviceId锛�" + deviceId);
+ logger.debug("璁惧閫氶亾淇℃伅鍚屾API璋冪敤锛宒eviceId锛�" + deviceId);
Device device = storager.queryVideoDevice(deviceId);
- cmder.catalogQuery(device);
- DeferredResult<ResponseEntity<Device>> result = new DeferredResult<ResponseEntity<Device>>();
+ cmder.catalogQuery(device, event -> {
+ Response response = event.getResponse();
+ RequestMessage msg = new RequestMessage();
+ msg.setId(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId);
+ msg.setData(String.format("鍚屾閫氶亾澶辫触锛岄敊璇爜锛� %s, %s", response.getStatusCode(), response.getReasonPhrase()));
+ resultHolder.invokeResult(msg);
+ });
+ DeferredResult<ResponseEntity<Device>> result = new DeferredResult<ResponseEntity<Device>>(2*1000L);
+ result.onTimeout(()->{
+ logger.warn(String.format("璁惧閫氶亾淇℃伅鍚屾瓒呮椂"));
+ // 閲婃斁rtpserver
+ RequestMessage msg = new RequestMessage();
+ msg.setId(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId);
+ msg.setData("Timeout");
+ resultHolder.invokeResult(msg);
+ });
resultHolder.put(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId, result);
return result;
}
--
Gitblit v1.8.0