From 5e4a673ecc95d6fb06aec6c5e2f3ec4ffb72584b Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 01 八月 2022 14:33:51 +0800
Subject: [PATCH] 修复视频播放点击音量报错 #557,修复编解码信息获取失败
---
src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java | 39 +++++++++++++++++++++++++--------------
1 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java
index 1b2f672..2b56326 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java
@@ -4,6 +4,10 @@
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.io.IOException;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,10 +22,10 @@
private final static Logger logger = LoggerFactory.getLogger(AlarmEventListener.class);
- private static SseEmitter emitter = new SseEmitter();
+ private static Map<String, SseEmitter> sseEmitters = new Hashtable<>();
- public void addSseEmitters(SseEmitter sseEmitter) {
- emitter = sseEmitter;
+ public void addSseEmitters(String browserId, SseEmitter sseEmitter) {
+ sseEmitters.put(browserId, sseEmitter);
}
@Override
@@ -30,18 +34,25 @@
logger.debug("璁惧鎶ヨ浜嬩欢瑙﹀彂锛宒eviceId锛�" + event.getAlarmInfo().getDeviceId() + ", "
+ event.getAlarmInfo().getAlarmDescription());
}
- try {
- String msg = "<strong>璁惧缂栫爜锛�</strong> <i>" + event.getAlarmInfo().getDeviceId() + "</i>"
- + "<br><strong>鎶ヨ鎻忚堪锛�</strong> <i>" + event.getAlarmInfo().getAlarmDescription() + "</i>"
- + "<br><strong>鎶ヨ鏃堕棿锛�</strong> <i>" + event.getAlarmInfo().getAlarmTime() + "</i>"
- + "<br><strong>瀹氫綅缁忓害锛�</strong> <i>" + event.getAlarmInfo().getLongitude() + "</i>"
- + "<br><strong>瀹氫綅绾害锛�</strong> <i>" + event.getAlarmInfo().getLatitude() + "</i>";
- emitter.send(msg);
- } catch (IOException e) {
- if (logger.isDebugEnabled()) {
- logger.debug("SSE 閫氶亾宸插叧闂�");
+ String msg = "<strong>璁惧缂栫爜锛�</strong> <i>" + event.getAlarmInfo().getDeviceId() + "</i>"
+ + "<br><strong>鎶ヨ鎻忚堪锛�</strong> <i>" + event.getAlarmInfo().getAlarmDescription() + "</i>"
+ + "<br><strong>鎶ヨ鏃堕棿锛�</strong> <i>" + event.getAlarmInfo().getAlarmTime() + "</i>"
+ + "<br><strong>鎶ヨ浣嶇疆锛�</strong> <i>" + event.getAlarmInfo().getLongitude() + "</i>"
+ + ", <i>" + event.getAlarmInfo().getLatitude() + "</i>";
+
+ for (Iterator<Map.Entry<String, SseEmitter>> it = sseEmitters.entrySet().iterator(); it.hasNext();) {
+ Map.Entry<String, SseEmitter> emitter = it.next();
+ logger.info("鎺ㄩ�佸埌SSE杩炴帴锛屾祻瑙堝櫒ID: " + emitter.getKey());
+ try {
+ emitter.getValue().send(msg);
+ } catch (IOException | IllegalStateException e) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("SSE杩炴帴宸插叧闂�");
+ }
+ // 绉婚櫎宸插叧闂殑杩炴帴
+ it.remove();
+ // e.printStackTrace();
}
- // e.printStackTrace();
}
}
}
--
Gitblit v1.8.0