From a2d93fce811acc83ad5ff0b4a93403db22795a10 Mon Sep 17 00:00:00 2001
From: winfed <chinesezwf@gmail.com>
Date: 星期五, 09 六月 2023 15:19:18 +0800
Subject: [PATCH] fix:修复拉流代理配置展示问题:音频、录制、无人观看
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java | 36 +++++++++++++++++++++---------------
1 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
index 3d5c294..f2291f2 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
@@ -1,6 +1,5 @@
package com.genersoft.iot.vmp.gb28181.transmit.callback;
-import com.alibaba.fastjson2.JSON;
import com.genersoft.iot.vmp.vmanager.bean.DeferredResultEx;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
@@ -40,6 +39,8 @@
public static final String CALLBACK_CMD_DOWNLOAD = "CALLBACK_DOWNLOAD";
+ public static final String CALLBACK_CMD_PROXY = "CALLBACK_PROXY";
+
public static final String CALLBACK_CMD_STOP = "CALLBACK_STOP";
public static final String UPLOAD_FILE_CHANNEL = "UPLOAD_FILE_CHANNEL";
@@ -51,6 +52,8 @@
public static final String CALLBACK_CMD_ALARM = "CALLBACK_ALARM";
public static final String CALLBACK_CMD_BROADCAST = "CALLBACK_BROADCAST";
+
+ public static final String CALLBACK_CMD_SNAP= "CALLBACK_SNAP";
private Map<String, Map<String, DeferredResultEx>> map = new ConcurrentHashMap<>();
@@ -130,23 +133,26 @@
if (deferredResultMap == null) {
return;
}
- Set<String> ids = deferredResultMap.keySet();
- for (String id : ids) {
- DeferredResultEx result = deferredResultMap.get(id);
- if (result == null) {
+ synchronized (this) {
+ deferredResultMap = map.get(msg.getKey());
+ if (deferredResultMap == null) {
return;
}
- if (result.getFilter() != null) {
- Object handler = result.getFilter().handler(msg.getData());
- System.out.println(JSON.toJSONString(handler));
- result.getDeferredResult().setResult(handler);
- }else {
- result.getDeferredResult().setResult(msg.getData());
+ Set<String> ids = deferredResultMap.keySet();
+ for (String id : ids) {
+ DeferredResultEx result = deferredResultMap.get(id);
+ if (result == null) {
+ return;
+ }
+ if (result.getFilter() != null) {
+ Object handler = result.getFilter().handler(msg.getData());
+ result.getDeferredResult().setResult(handler);
+ }else {
+ result.getDeferredResult().setResult(msg.getData());
+ }
+
}
-
+ map.remove(msg.getKey());
}
- map.remove(msg.getKey());
}
-
-
}
--
Gitblit v1.8.0