diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java index 0d30ad835..344799f2a 100644 --- a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/LocalMessageDistributorConfiguration.java @@ -23,7 +23,7 @@ public class LocalMessageDistributorConfiguration { */ @Bean @ConditionalOnMissingBean(MessageDistributor.class) - public LocalMessageDistributor messageDistributor() { + public LocalMessageDistributor sseMessageDistributor() { return new LocalMessageDistributor(); } diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java index 6ae8cee0b..de846f493 100644 --- a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/MessageDistributorTypeConstants.java @@ -1,7 +1,10 @@ package com.pig4cloud.pigx.common.sse.config; /** + * 消息分发器类型常量类 + * * @author lengleng + * @date 2025/06/06 */ public final class MessageDistributorTypeConstants { diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java index 72010638d..557fd8927 100644 --- a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java +++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/RedisMessageDistributorConfiguration.java @@ -27,32 +27,61 @@ import org.springframework.data.redis.listener.RedisMessageListenerContainer; @Configuration(proxyBeanMethods = false) public class RedisMessageDistributorConfiguration { + /** + * 创建Redis消息分发器Bean + * + * @param stringRedisTemplate Redis字符串模板 + * @return Redis消息分发器实例 + * @ConditionalOnMissingBean 当容器中不存在MessageDistributor类型的Bean时创建 + */ @Bean @ConditionalOnMissingBean(MessageDistributor.class) - public RedisMessageDistributor messageDistributor(StringRedisTemplate stringRedisTemplate) { + public RedisMessageDistributor sseMessageDistributor(StringRedisTemplate stringRedisTemplate) { return new RedisMessageDistributor(stringRedisTemplate); - } + } + /** + * 创建RedisSseEmitterMessageListener实例 + * + * @param stringRedisTemplate Redis字符串模板 + * @return RedisSseEmitterMessageListener实例 + * @see RedisSseEmitterMessageListener + */ @Bean @ConditionalOnBean(RedisMessageDistributor.class) @ConditionalOnMissingBean - public RedisSseEmitterMessageListener redisWebsocketMessageListener(StringRedisTemplate stringRedisTemplate) { + public RedisSseEmitterMessageListener sseRedisWebsocketMessageListener(StringRedisTemplate stringRedisTemplate) { return new RedisSseEmitterMessageListener(stringRedisTemplate); - } + } + /** + * 创建Redis消息监听容器 + * + * @param connectionFactory Redis连接工厂 + * @return Redis消息监听容器实例 + * @see RedisMessageListenerContainer + */ @Bean @ConditionalOnBean(RedisMessageDistributor.class) @ConditionalOnMissingBean - public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory) { + public RedisMessageListenerContainer sseRedisMessageListenerContainer(RedisConnectionFactory connectionFactory) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); return container; - } + } + /** + * SSE Redis消息监听器注册配置类 + *
+ * 用于配置Redis消息监听器,实现SSE消息分发
+ *
+ * @author lengleng
+ * @date 2025/06/06
+ */
@Configuration(proxyBeanMethods = false)
@ConditionalOnMissingBean(MessageDistributor.class)
@RequiredArgsConstructor
- static class RedisMessageListenerRegisterConfiguration {
+ static class SseRedisMessageListenerRegisterConfiguration {
private final RedisMessageListenerContainer redisMessageListenerContainer;
diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java
index c2fa9cdec..8a338473f 100644
--- a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java
+++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterAutoConfiguration.java
@@ -12,6 +12,12 @@ import org.springframework.context.annotation.Bean;
@EnableConfigurationProperties(SseEmitterProperties.class)
public class SseEmitterAutoConfiguration {
+ /**
+ * 创建并返回一个SseEmitterEndpoint实例
+ *
+ * @return SseEmitterEndpoint实例
+ * @ConditionalOnMissingBean 当容器中不存在该类型的bean时才会创建
+ */
@Bean
@ConditionalOnMissingBean
public SseEmitterEndpoint sseEmitterEndpoint() {
diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java
index e68e520b0..8ffd22e7c 100644
--- a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java
+++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterEndpoint.java
@@ -12,8 +12,10 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import java.util.Objects;
/**
+ * SSE端点控制器:提供服务器发送事件(SSE)功能
+ *
* @author lengleng
- * @date 2023/12/11
+ * @date 2025/06/06
*/
@Slf4j
@RestController
@@ -21,6 +23,12 @@ import java.util.Objects;
@RequestMapping("/sse")
public class SseEmitterEndpoint {
+ /**
+ * 创建并返回一个SSE事件发射器
+ *
+ * @return SSE事件发射器,用于服务器推送事件,若用户未认证则返回null
+ * @throws Exception 若发送初始消息失败时抛出异常
+ */
@SneakyThrows
@RequestMapping("/info")
public SseEmitter info() {
diff --git a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java
index 15e248eeb..b6f976b8a 100644
--- a/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java
+++ b/pigx-common/pigx-common-sse/src/main/java/com/pig4cloud/pigx/common/sse/config/SseEmitterMessageSender.java
@@ -8,19 +8,34 @@ import java.io.IOException;
import java.util.Collection;
/**
- * @author lengleng 2021/1/4
+ * SSE消息发送工具类,提供广播和单播消息发送功能
+ *
+ * @author lengleng
* @version 1.0
+ * @date 2025/06/06
*/
@Slf4j
public class SseEmitterMessageSender {
+ /**
+ * 广播消息给所有SSE订阅者
+ *
+ * @param message 要广播的消息内容
+ */
public static void broadcast(String message) {
Collection