648540858
2021-12-08 ab81136765f1b641223b982b2baef13e06307fe4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.genersoft.iot.vmp.gb28181.event;
 
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.event.offline.OfflineEvent;
import com.genersoft.iot.vmp.gb28181.event.platformKeepaliveExpire.PlatformKeepaliveExpireEvent;
import com.genersoft.iot.vmp.gb28181.event.platformNotRegister.PlatformNotRegisterEvent;
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.bean.DeviceAlarm;
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
import com.genersoft.iot.vmp.gb28181.event.online.OnlineEvent;
 
/**    
 * @description:Event事件通知推送器,支持推送在线事件、离线事件
 * @author: swwheihei
 * @date:   2020年5月6日 上午11:30:50     
 */
@Component
public class EventPublisher {
 
    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;
    
    public void onlineEventPublish(Device device, String from) {
        OnlineEvent onEvent = new OnlineEvent(this);
        onEvent.setDevice(device);
        onEvent.setFrom(from);
        applicationEventPublisher.publishEvent(onEvent);
    }
    
    public void outlineEventPublish(String deviceId, String from){
        OfflineEvent outEvent = new OfflineEvent(this);
        outEvent.setDeviceId(deviceId);
        outEvent.setFrom(from);
        applicationEventPublisher.publishEvent(outEvent);
    }
 
    /**
     * 平台心跳到期事件
     * @param platformGbId
     */
    public void platformKeepaliveExpireEventPublish(String platformGbId){
        PlatformKeepaliveExpireEvent platformNotRegisterEvent = new PlatformKeepaliveExpireEvent(this);
        platformNotRegisterEvent.setPlatformGbID(platformGbId);
        applicationEventPublisher.publishEvent(platformNotRegisterEvent);
    }
 
    /**
     * 平台未注册事件
     * @param platformGbId
     */
    public void platformNotRegisterEventPublish(String platformGbId){
        PlatformNotRegisterEvent platformNotRegisterEvent = new PlatformNotRegisterEvent(this);
        platformNotRegisterEvent.setPlatformGbID(platformGbId);
        applicationEventPublisher.publishEvent(platformNotRegisterEvent);
    }
    
    /**
     * 设备报警事件
     * @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);
    }
}