SysSSEController.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.aizuda.boot.modules.system.controller;
  2. import com.aizuda.boot.modules.system.service.ISysSSEService;
  3. import com.aizuda.core.api.ApiController;
  4. import com.aizuda.service.web.UserSession;
  5. import com.baomidou.kisso.annotation.Permission;
  6. import io.swagger.v3.oas.annotations.Operation;
  7. import io.swagger.v3.oas.annotations.tags.Tag;
  8. import lombok.AllArgsConstructor;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
  12. /**
  13. * SSE消息推送 前端控制器
  14. *
  15. * @author 青苗
  16. * @since 2024-09-05
  17. */
  18. @Tag(name = "SSE消息推送")
  19. @RestController
  20. @AllArgsConstructor
  21. @RequestMapping("/sys/sse")
  22. public class SysSSEController extends ApiController {
  23. private ISysSSEService sseService;
  24. @Operation(summary = "连接")
  25. @Permission("sys:sse:connect")
  26. @RequestMapping("/connect")
  27. public SseEmitter connect() {
  28. return sseService.connect();
  29. }
  30. @Operation(summary = "测试发送数据给当前用户")
  31. @Permission("sys:sse:testSend")
  32. @RequestMapping("/test-send")
  33. public boolean sendTest(String message) {
  34. sseService.send(UserSession.getLoginInfo().getId(), "message", message);
  35. return true;
  36. }
  37. }