From 3b21f385cdae7d94fce1ebba6abb06a893f57114 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 02 十一月 2021 10:40:29 +0800
Subject: [PATCH] 对需要向设备发起请求的http请求,使用缓存,等待设备请求返回的时候一次性释放所有请求

---
 src/main/java/com/genersoft/iot/vmp/vmanager/onvif/ONVIFController.java |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/onvif/ONVIFController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/onvif/ONVIFController.java
index 67bdb97..0fa2f6b 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/onvif/ONVIFController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/onvif/ONVIFController.java
@@ -40,17 +40,18 @@
     @ResponseBody
     public DeferredResult<ResponseEntity<WVPResult>> search(@RequestParam(required = false)Integer timeout){
         DeferredResult<ResponseEntity<WVPResult>> result = new DeferredResult<>(timeout + 10L);
-        UUID uuid = UUID.randomUUID();
+        String uuid = UUID.randomUUID().toString();
         result.onTimeout(()->{
             RequestMessage msg = new RequestMessage();
-            msg.setId(DeferredResultHolder.CALLBACK_ONVIF + uuid);
+            msg.setKey(DeferredResultHolder.CALLBACK_ONVIF );
+            msg.setId(uuid);
             WVPResult<String> wvpResult = new WVPResult();
             wvpResult.setCode(0);
             wvpResult.setMsg("鎼滅储瓒呮椂");
             msg.setData(wvpResult);
             resultHolder.invokeResult(msg);
         });
-        resultHolder.put(DeferredResultHolder.CALLBACK_ONVIF + uuid, result);
+        resultHolder.put(DeferredResultHolder.CALLBACK_ONVIF, uuid, result);
 
         onvifServer.search(timeout, (errorCode, onvifDevices) ->{
             RequestMessage msg = new RequestMessage();
@@ -87,17 +88,18 @@
                                                                 ){
 
         DeferredResult<ResponseEntity<WVPResult>> result = new DeferredResult<>(timeout + 10L);
-        UUID uuid = UUID.randomUUID();
+        String uuid = UUID.randomUUID().toString();
         result.onTimeout(()->{
             RequestMessage msg = new RequestMessage();
-            msg.setId(DeferredResultHolder.CALLBACK_ONVIF + uuid);
+            msg.setId(uuid);
+            msg.setKey(DeferredResultHolder.CALLBACK_ONVIF);
             WVPResult<String> wvpResult = new WVPResult();
             wvpResult.setCode(0);
             wvpResult.setMsg("鑾峰彇onvif鐨剅tsp鍦板潃瓒呮椂");
             msg.setData(wvpResult);
             resultHolder.invokeResult(msg);
         });
-        resultHolder.put(DeferredResultHolder.CALLBACK_ONVIF + uuid, result);
+        resultHolder.put(DeferredResultHolder.CALLBACK_ONVIF, uuid, result);
         OnvifDevice onvifDevice = new OnvifDevice(hostname, username, password);
         onvifServer.getRTSPUrl(timeout, onvifDevice,  (errorCode, url) ->{
             RequestMessage msg = new RequestMessage();

--
Gitblit v1.8.0