package com.genersoft.iot.vmp.gb28181.event.alarm; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @description: 报警事件监听 * @author: lawrencehj * @data: 2021-01-20 */ @Component public class AlarmEventListener implements ApplicationListener { private final static Logger logger = LoggerFactory.getLogger(AlarmEventListener.class); private static SseEmitter emitter = new SseEmitter(); public void addSseEmitters(SseEmitter sseEmitter) { emitter = sseEmitter; } @Override public void onApplicationEvent(AlarmEvent event) { if (logger.isDebugEnabled()) { logger.debug("设备报警事件触发,deviceId:" + event.getAlarmInfo().getDeviceId() + ", " + event.getAlarmInfo().getAlarmDescription()); } try { String msg = "设备编码: " + event.getAlarmInfo().getDeviceId() + "" + "
报警描述: " + event.getAlarmInfo().getAlarmDescription() + "" + "
报警时间: " + event.getAlarmInfo().getAlarmTime() + "" + "
定位经度: " + event.getAlarmInfo().getLongitude() + "" + "
定位纬度: " + event.getAlarmInfo().getLatitude() + ""; emitter.send(msg); } catch (IOException e) { if (logger.isDebugEnabled()) { logger.debug("SSE 通道已关闭"); } // e.printStackTrace(); } } }