浏览代码

fix 修复 websocket 发布全局订阅序列化报错问题

疯狂的狮子li 2 年之前
父节点
当前提交
1dd9a952d5

+ 0 - 2
ruoyi-common/ruoyi-common-websocket/src/main/java/com/ruoyi/common/websocket/dto/WebSocketMessageDto.java

@@ -1,6 +1,5 @@
 package com.ruoyi.common.websocket.dto;
 
-import lombok.Builder;
 import lombok.Data;
 
 import java.io.Serial;
@@ -12,7 +11,6 @@ import java.util.List;
  *
  * @author zendwang
  */
-@Builder
 @Data
 public class WebSocketMessageDto implements Serializable {
 

+ 3 - 2
ruoyi-common/ruoyi-common-websocket/src/main/java/com/ruoyi/common/websocket/handler/PlusWebSocketHandler.java

@@ -42,8 +42,9 @@ 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.builder()
-            .sessionKeys(userIds).message(message.getPayload()).build();
+        WebSocketMessageDto webSocketMessageDto = new WebSocketMessageDto();
+        webSocketMessageDto.setSessionKeys(userIds);
+        webSocketMessageDto.setMessage(message.getPayload());
         WebSocketUtils.publishMessage(webSocketMessageDto);
     }
 

+ 3 - 2
ruoyi-common/ruoyi-common-websocket/src/main/java/com/ruoyi/common/websocket/utils/WebSocketUtils.java

@@ -67,8 +67,9 @@ public class WebSocketUtils {
         }
         // 不在当前服务内session,发布订阅消息
         if (CollUtil.isNotEmpty(unsentSessionKeys)) {
-            WebSocketMessageDto broadcastMessage = WebSocketMessageDto.builder()
-                .message(webSocketMessage.getMessage()).sessionKeys(unsentSessionKeys).build();
+            WebSocketMessageDto broadcastMessage = new WebSocketMessageDto();
+            broadcastMessage.setMessage(webSocketMessage.getMessage());
+            broadcastMessage.setSessionKeys(unsentSessionKeys);
             RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
                 log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}",
                     WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage());