+ * WebSocket配置 + *
+ * + * @author YLL + * @since 2025/6/22 + */ +@Configuration +@EnableWebSocket +@EnableWebSocketMessageBroker +public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { + @Override + public void registerStompEndpoints(StompEndpointRegistry registry) { + // 注册一个 /notification 端点,前端通过这个端点进行连接 + registry.addEndpoint("/websocket").setAllowedOrigins("*").withSockJS(); + } + + @Override + public void configureMessageBroker(MessageBrokerRegistry registry) { + // 定义了一个客户端订阅地址的前缀信息,也就是客户端接收服务端发送消息的前缀信息 + registry.enableSimpleBroker("/topic"); + } +} diff --git a/src/main/java/asia/yulinling/workflow/constant/WebSocketConst.java b/src/main/java/asia/yulinling/workflow/constant/WebSocketConst.java new file mode 100644 index 0000000..622de20 --- /dev/null +++ b/src/main/java/asia/yulinling/workflow/constant/WebSocketConst.java @@ -0,0 +1,14 @@ +package asia.yulinling.workflow.constant; + +/** + *+ * WebSocketConst + *
+ * + * @author YLL + * @since 2025/6/22 + */ +public interface WebSocketConst { + String WEBSOCKET_PATH = "/websocket"; + String PUSH_SERVER = "/topic/push"; +} diff --git a/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java b/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java new file mode 100644 index 0000000..860236e --- /dev/null +++ b/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java @@ -0,0 +1,31 @@ +package asia.yulinling.workflow.task; + +import cn.hutool.core.date.DateUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.messaging.simp.SimpMessagingTemplate; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + *+ * WebSocketTask + *
+ * + * @author YLL + * @since 2025/6/22 + */ +@Component +@Slf4j +@RequiredArgsConstructor +public class WebSocketTask { + private final SimpMessagingTemplate simpMessagingTemplate; + +// @Scheduled(fixedRate = 1000) + public void sendMessage() throws Exception{ + log.info("【推送消息】开始执行:{}", DateUtil.formatDateTime(new Date())); + simpMessagingTemplate.convertAndSend("test", "1"); + log.info("【推送消息】执行结束:{}", DateUtil.formatDateTime(new Date())); + } +}