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推送") @CrossOrigin @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; } }