mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-04-09 12:03:15 +08:00
update 回滚错误的修改 record无法投递到redis序列化
This commit is contained in:
@@ -205,10 +205,12 @@ public class SseEmitterManager {
|
||||
* @param sseMessageDTO 要发布的SSE消息对象
|
||||
*/
|
||||
public void publishMessage(SseMessageDTO sseMessageDTO) {
|
||||
SseMessageDTO broadcastMessage = new SseMessageDTO(sseMessageDTO.userIds(), sseMessageDTO.message());
|
||||
SseMessageDTO broadcastMessage = new SseMessageDTO();
|
||||
broadcastMessage.setUserIds(sseMessageDTO.getUserIds());
|
||||
broadcastMessage.setMessage(sseMessageDTO.getMessage());
|
||||
RedisUtils.publish(SSE_TOPIC, broadcastMessage, consumer -> {
|
||||
log.info("SSE发送主题订阅消息topic:{} session keys:{} message:{}",
|
||||
SSE_TOPIC, sseMessageDTO.userIds(), sseMessageDTO.message());
|
||||
SSE_TOPIC, sseMessageDTO.getUserIds(), sseMessageDTO.getMessage());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -218,7 +220,8 @@ public class SseEmitterManager {
|
||||
* @param message 要发布的消息内容
|
||||
*/
|
||||
public void publishAll(String message) {
|
||||
SseMessageDTO broadcastMessage = new SseMessageDTO(null, message);
|
||||
SseMessageDTO broadcastMessage = new SseMessageDTO();
|
||||
broadcastMessage.setMessage(message);
|
||||
RedisUtils.publish(SSE_TOPIC, broadcastMessage, consumer -> {
|
||||
log.info("SSE发送主题订阅消息topic:{} message:{}", SSE_TOPIC, message);
|
||||
});
|
||||
|
||||
@@ -1,16 +1,29 @@
|
||||
package org.dromara.common.sse.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 消息的DTO
|
||||
* 消息的dto
|
||||
*
|
||||
* @param userIds 接收消息的用户 ID 列表
|
||||
* @param message 推送消息内容
|
||||
* @author zendwang
|
||||
*/
|
||||
public record SseMessageDTO(
|
||||
List<Long> userIds,
|
||||
String message
|
||||
) {
|
||||
@Data
|
||||
public class SseMessageDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 需要推送到的session key 列表
|
||||
*/
|
||||
private List<Long> userIds;
|
||||
|
||||
/**
|
||||
* 需要发送的消息
|
||||
*/
|
||||
private String message;
|
||||
}
|
||||
|
||||
@@ -28,14 +28,14 @@ public class SseTopicListener implements ApplicationRunner, Ordered {
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
sseEmitterManager.subscribeMessage((message) -> {
|
||||
log.info("SSE主题订阅收到消息session keys={} message={}", message.userIds(), message.message());
|
||||
log.info("SSE主题订阅收到消息session keys={} message={}", message.getUserIds(), message.getMessage());
|
||||
// 如果key不为空就按照key发消息 如果为空就群发
|
||||
if (CollUtil.isNotEmpty(message.userIds())) {
|
||||
message.userIds().forEach(key -> {
|
||||
sseEmitterManager.sendMessage(key, message.message());
|
||||
if (CollUtil.isNotEmpty(message.getUserIds())) {
|
||||
message.getUserIds().forEach(key -> {
|
||||
sseEmitterManager.sendMessage(key, message.getMessage());
|
||||
});
|
||||
} else {
|
||||
sseEmitterManager.sendMessage(message.message());
|
||||
sseEmitterManager.sendMessage(message.getMessage());
|
||||
}
|
||||
});
|
||||
log.info("初始化SSE主题订阅监听器成功");
|
||||
|
||||
Reference in New Issue
Block a user