diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index a00b70d41..6529dfe03 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -17,6 +17,8 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; +import org.dromara.common.websocket.dto.WebSocketMessageDto; +import org.dromara.common.websocket.utils.WebSocketUtils; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.ISysUserService; import org.dromara.web.domain.bo.*; @@ -31,6 +33,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -412,8 +416,24 @@ public class EqHomeController extends BaseController { return R.ok(BCrypt.checkpw(bo.getPassword(), sysUserVo.getPassword())); } + private final ScheduledExecutorService scheduledExecutorService; - + /** + * 发送websocket消息 + * @param msg + * @return + */ + @GetMapping("/sendWebSocketMsg") + public R sendWebSocketMsg(String msg){ + Long userId = LoginHelper.getUserId(); + scheduledExecutorService.schedule(() -> { + WebSocketMessageDto dto = new WebSocketMessageDto(); + dto.setMessage(msg); + dto.setSessionKeys(List.of(userId)); + WebSocketUtils.publishMessage(dto); + }, 3, TimeUnit.SECONDS); + return R.ok(); + } }