package com.ruoyi.system.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.system.api.domain.WebsocketMessageDTO; import com.ruoyi.system.websocket.WebSocketUsers; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/websocket") public class WebSocketController { @GetMapping("/push") public R push() { WebSocketUsers.sendMessageToUsersByText("长江长江,我是黄河!"); return R.ok(); } @GetMapping("/push/{type}/{msg}") public R push(@PathVariable("type") Integer type, @PathVariable("msg") String msg) { WebSocketUsers.sendMessageToUsersByType(type, msg); return R.ok(); } @InnerAuth @PostMapping("/push-by-client-type") public R pushByClientType(@RequestBody WebsocketMessageDTO dto) { WebSocketUsers.sendMessageToUsersByType(dto.getClientType().getCode(), dto.getMessage()); return R.ok(); } @InnerAuth @GetMapping("/push-all/{message}") public R pushAll(@PathVariable("message") String message) { WebSocketUsers.sendMessageToUsersByText(message); return R.ok(); } /** * 批量向指定用户推送消息 * @param dto * @return */ @InnerAuth @PostMapping("/push-batch") public R pushBatch(@RequestBody WebsocketMessageDTO dto) { WebSocketUsers.sendMessageToUserById(dto.getUserId(), dto.getMessage()); return R.ok(); } /** * 通过用户id推送消息 * @param type * @param msg * @return */ @GetMapping("/push-by-user-id/{userId}/{msg}") public R pushByUserId(@PathVariable("userId") Long userId, @PathVariable("msg") String msg) { WebSocketUsers.sendMessageToUserById(userId, msg); return R.ok(); } }