| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package com.genersoft.iot.vmp.gb28181.event;
- import com.genersoft.iot.vmp.gb28181.bean.*;
- import com.genersoft.iot.vmp.gb28181.event.device.RequestTimeoutEvent;
- import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent;
- import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformCycleRegisterEvent;
- import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent;
- import com.genersoft.iot.vmp.gb28181.event.record.RecordEndEvent;
- import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
- import com.genersoft.iot.vmp.media.zlm.event.ZLMOfflineEvent;
- import com.genersoft.iot.vmp.media.zlm.event.ZLMOnlineEvent;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationEventPublisher;
- import org.springframework.stereotype.Component;
- import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
- import javax.sip.TimeoutEvent;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- /**
- * @description:Event事件通知推送器,支持推送在线事件、离线事件
- * @author: swwheihei
- * @date: 2020年5月6日 上午11:30:50
- */
- @Component
- public class EventPublisher {
- @Autowired
- private ApplicationEventPublisher applicationEventPublisher;
- /**
- * 平台心跳到期事件
- * @param platformGbId
- */
- public void platformKeepaliveExpireEventPublish(String platformGbId){
- PlatformKeepaliveExpireEvent platformKeepaliveExpireEvent = new PlatformKeepaliveExpireEvent(this);
- platformKeepaliveExpireEvent.setPlatformGbID(platformGbId);
- applicationEventPublisher.publishEvent(platformKeepaliveExpireEvent);
- }
- /**
- * 平台未注册事件
- * @param platformGbId
- */
- public void platformNotRegisterEventPublish(String platformGbId){
- PlatformNotRegisterEvent platformNotRegisterEvent = new PlatformNotRegisterEvent(this);
- platformNotRegisterEvent.setPlatformGbID(platformGbId);
- applicationEventPublisher.publishEvent(platformNotRegisterEvent);
- }
- /**
- * 平台周期注册事件
- * @param paltformGbId
- */
- public void platformRegisterCycleEventPublish(String paltformGbId) {
- PlatformCycleRegisterEvent platformCycleRegisterEvent = new PlatformCycleRegisterEvent(this);
- platformCycleRegisterEvent.setPlatformGbID(paltformGbId);
- applicationEventPublisher.publishEvent(platformCycleRegisterEvent);
- }
-
- /**
- * 设备报警事件
- * @param deviceAlarm
- */
- public void deviceAlarmEventPublish(DeviceAlarm deviceAlarm) {
- AlarmEvent alarmEvent = new AlarmEvent(this);
- alarmEvent.setAlarmInfo(deviceAlarm);
- applicationEventPublisher.publishEvent(alarmEvent);
- }
- public void zlmOfflineEventPublish(String mediaServerId){
- ZLMOfflineEvent outEvent = new ZLMOfflineEvent(this);
- outEvent.setMediaServerId(mediaServerId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void zlmOnlineEventPublish(String mediaServerId) {
- ZLMOnlineEvent outEvent = new ZLMOnlineEvent(this);
- outEvent.setMediaServerId(mediaServerId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void catalogEventPublish(String platformId, DeviceChannel deviceChannel, String type) {
- List<DeviceChannel> deviceChannelList = new ArrayList<>();
- deviceChannelList.add(deviceChannel);
- catalogEventPublish(platformId, deviceChannelList, type);
- }
- public void requestTimeOut(TimeoutEvent timeoutEvent) {
- RequestTimeoutEvent requestTimeoutEvent = new RequestTimeoutEvent(this);
- requestTimeoutEvent.setTimeoutEvent(timeoutEvent);
- applicationEventPublisher.publishEvent(requestTimeoutEvent);
- }
- /**
- *
- * @param platformId
- * @param deviceChannels
- * @param type
- */
- public void catalogEventPublish(String platformId, List<DeviceChannel> deviceChannels, String type) {
- CatalogEvent outEvent = new CatalogEvent(this);
- List<DeviceChannel> channels = new ArrayList<>();
- if (deviceChannels.size() > 1) {
- // 数据去重
- Set<String> gbIdSet = new HashSet<>();
- for (DeviceChannel deviceChannel : deviceChannels) {
- if (!gbIdSet.contains(deviceChannel.getChannelId())) {
- gbIdSet.add(deviceChannel.getChannelId());
- channels.add(deviceChannel);
- }
- }
- }else {
- channels = deviceChannels;
- }
- outEvent.setDeviceChannels(channels);
- outEvent.setType(type);
- outEvent.setPlatformId(platformId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void catalogEventPublishForStream(String platformId, List<GbStream> gbStreams, String type) {
- CatalogEvent outEvent = new CatalogEvent(this);
- outEvent.setGbStreams(gbStreams);
- outEvent.setType(type);
- outEvent.setPlatformId(platformId);
- applicationEventPublisher.publishEvent(outEvent);
- }
- public void catalogEventPublishForStream(String platformId, GbStream gbStream, String type) {
- List<GbStream> gbStreamList = new ArrayList<>();
- gbStreamList.add(gbStream);
- catalogEventPublishForStream(platformId, gbStreamList, type);
- }
- public void recordEndEventPush(RecordInfo recordInfo) {
- RecordEndEvent outEvent = new RecordEndEvent(this);
- outEvent.setRecordInfo(recordInfo);
- applicationEventPublisher.publishEvent(outEvent);
- }
- }
|