diff --git a/src/main/java/com/gis/xian/config/WebSocketConfig.java b/src/main/java/com/gis/xian/config/WebSocketConfig.java new file mode 100644 index 0000000..556a49e --- /dev/null +++ b/src/main/java/com/gis/xian/config/WebSocketConfig.java @@ -0,0 +1,28 @@ +package com.gis.xian.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.messaging.simp.config.MessageBrokerRegistry; +import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker; +import org.springframework.web.socket.config.annotation.StompEndpointRegistry; +import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer; + +@Configuration +@EnableWebSocketMessageBroker // 启用WebSocket消息代理 +public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { + + @Override + public void configureMessageBroker(MessageBrokerRegistry registry) { + // 启用简单的内存消息代理,客户端订阅以 "/topic" 开头的目的地 + registry.enableSimpleBroker("/topic"); + // 设置客户端发送消息的前缀,即 "/app" + registry.setApplicationDestinationPrefixes("/app"); + } + + @Override + public void registerStompEndpoints(StompEndpointRegistry registry) { + // 注册端点 "/websocket",客户端将通过此路径建立连接 + registry.addEndpoint("/websocket") + .setAllowedOriginPatterns("*") // 允许所有源,支持携带凭证 + .withSockJS(); + } +} \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index c094695..26473c1 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -42,11 +42,13 @@ safety: - /crypto/sm2/public-key - /druid - /algorithm-api/rainfall/grid + - /websocket/** # 请求无需解密的路径 no-decrypt-paths: - /crypto/sm2/public-key - /druid - /algorithm-api/rainfall/grid + - /websocket/** # 算法服务器配置 algorithm: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index c233141..742f050 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -42,10 +42,12 @@ safety: no-encrypt-paths: - /crypto/sm2/public-key - /algorithm-api/rainfall/grid + - /websocket/** # 请求无需解密的路径 no-decrypt-paths: - /crypto/sm2/public-key - /algorithm-api/rainfall/grid + - /websocket/** # 算法服务器配置 algorithm: