package com.qianwen.smartman.modules.sync.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.modules.sync.message.sse.SseEmitterServer; 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.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; @RequestMapping({"/sse"}) @Api(tags = {"SSE"}) @RestController public class SseEmitterController { private final SseEmitterServer sseEmitterServer; public SseEmitterController(final SseEmitterServer sseEmitterServer) { this.sseEmitterServer = sseEmitterServer; } @GetMapping({"/createSseConnect"}) @CrossOrigin @ApiOperation("sse创建连接") public SseEmitter createSseConnect(@RequestParam(value = "clientId", required = false) String clientId) { return this.sseEmitterServer.createSseConnect(clientId); } @GetMapping({"/closeSseConnect"}) @CrossOrigin @ApiOperation("sse关闭连接") public R closeSseConnect(@RequestParam("clientId") String clientId) { this.sseEmitterServer.close(clientId); return R.status(Boolean.TRUE.booleanValue()); } }