fix 修复 websocket 发布全局订阅序列化报错问题
This commit is contained in:
parent
2e92773b8c
commit
1dd9a952d5
@ -1,6 +1,5 @@
|
|||||||
package com.ruoyi.common.websocket.dto;
|
package com.ruoyi.common.websocket.dto;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
@ -12,7 +11,6 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author zendwang
|
* @author zendwang
|
||||||
*/
|
*/
|
||||||
@Builder
|
|
||||||
@Data
|
@Data
|
||||||
public class WebSocketMessageDto implements Serializable {
|
public class WebSocketMessageDto implements Serializable {
|
||||||
|
|
||||||
|
@ -42,8 +42,9 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler {
|
|||||||
LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY);
|
LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY);
|
||||||
log.info("PlusWebSocketHandler, 连接:" + session.getId() + ",已收到消息:" + message.getPayload());
|
log.info("PlusWebSocketHandler, 连接:" + session.getId() + ",已收到消息:" + message.getPayload());
|
||||||
List<Long> userIds = List.of(loginUser.getUserId());
|
List<Long> userIds = List.of(loginUser.getUserId());
|
||||||
WebSocketMessageDto webSocketMessageDto = WebSocketMessageDto.builder()
|
WebSocketMessageDto webSocketMessageDto = new WebSocketMessageDto();
|
||||||
.sessionKeys(userIds).message(message.getPayload()).build();
|
webSocketMessageDto.setSessionKeys(userIds);
|
||||||
|
webSocketMessageDto.setMessage(message.getPayload());
|
||||||
WebSocketUtils.publishMessage(webSocketMessageDto);
|
WebSocketUtils.publishMessage(webSocketMessageDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,8 +67,9 @@ public class WebSocketUtils {
|
|||||||
}
|
}
|
||||||
// 不在当前服务内session,发布订阅消息
|
// 不在当前服务内session,发布订阅消息
|
||||||
if (CollUtil.isNotEmpty(unsentSessionKeys)) {
|
if (CollUtil.isNotEmpty(unsentSessionKeys)) {
|
||||||
WebSocketMessageDto broadcastMessage = WebSocketMessageDto.builder()
|
WebSocketMessageDto broadcastMessage = new WebSocketMessageDto();
|
||||||
.message(webSocketMessage.getMessage()).sessionKeys(unsentSessionKeys).build();
|
broadcastMessage.setMessage(webSocketMessage.getMessage());
|
||||||
|
broadcastMessage.setSessionKeys(unsentSessionKeys);
|
||||||
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
|
RedisUtils.publish(WEB_SOCKET_TOPIC, broadcastMessage, consumer -> {
|
||||||
log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}",
|
log.info(" WebSocket发送主题订阅消息topic:{} session keys:{} message:{}",
|
||||||
WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage());
|
WEB_SOCKET_TOPIC, unsentSessionKeys, webSocketMessage.getMessage());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user