mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 10:35:57 +08:00
add 增加 ruoyi-websocket 模块
This commit is contained in:
parent
754b78cb18
commit
aede0ce844
@ -2,7 +2,6 @@ package com.ruoyi.common.websocket.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
@ -12,8 +11,8 @@ import java.util.List;
|
||||
*
|
||||
* @author zendwang
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class WebSocketMessageDto implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -27,8 +26,4 @@ public class WebSocketMessageDto implements Serializable {
|
||||
* 需要发送的消息
|
||||
*/
|
||||
private String message;
|
||||
|
||||
public static WebSocketMessageDto build(List<Long> sessionKeys, String message) {
|
||||
return new WebSocketMessageDto().setMessage(message).setSessionKeys(sessionKeys);
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +44,8 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler {
|
||||
LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY);
|
||||
log.info("PlusWebSocketHandler, 连接:" + session.getId() + ",已收到消息:" + message.getPayload());
|
||||
List<Long> userIds = List.of(loginUser.getUserId());
|
||||
WebSocketMessageDto webSocketMessageDto = WebSocketMessageDto.build(userIds, message.getPayload());
|
||||
WebSocketMessageDto webSocketMessageDto = WebSocketMessageDto.builder()
|
||||
.sessionKeys(userIds).message(message.getPayload()).build();
|
||||
WebSocketUtils.publishMessage(webSocketMessageDto);
|
||||
}
|
||||
|
||||
|
||||
@ -68,7 +68,8 @@ public class WebSocketUtils {
|
||||
}
|
||||
// 不在当前服务内session,发布订阅消息
|
||||
if (CollUtil.isNotEmpty(unsentSessionKeys)) {
|
||||
WebSocketMessageDto broadcastMessage = WebSocketMessageDto.build(unsentSessionKeys, webSocketMessage.getMessage());
|
||||
WebSocketMessageDto broadcastMessage = WebSocketMessageDto.builder()
|
||||
.message(webSocketMessage.getMessage()).sessionKeys(unsentSessionKeys).build();
|
||||
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
|
||||
log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}",
|
||||
WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user