| package com.genersoft.iot.vmp.vmanager.gb28181.SseController; | 
|   | 
| import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEventListener; | 
|   | 
| import io.swagger.v3.oas.annotations.tags.Tag; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Controller; | 
| import org.springframework.web.bind.annotation.CrossOrigin; | 
| import org.springframework.web.bind.annotation.GetMapping; | 
| import org.springframework.web.bind.annotation.RequestMapping; | 
| import org.springframework.web.bind.annotation.RequestParam; | 
| import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; | 
|   | 
| /** | 
|  * @description: SSE推送 | 
|  * @author: lawrencehj | 
|  * @data: 2021-01-20 | 
|  */ | 
| @Tag(name  = "SSE推送") | 
|   | 
| @Controller | 
| @RequestMapping("/api") | 
| public class SseController { | 
|     @Autowired | 
|     AlarmEventListener alarmEventListener; | 
|   | 
|     @GetMapping("/emit") | 
|     public SseEmitter emit(@RequestParam String browserId) { | 
|         final SseEmitter sseEmitter = new SseEmitter(0L); | 
|         try { | 
|             alarmEventListener.addSseEmitters(browserId, sseEmitter); | 
|         }catch (Exception e){ | 
|             sseEmitter.completeWithError(e); | 
|         } | 
|         return sseEmitter; | 
|     } | 
| } |