明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

在Spring框架中,`allowedOrigins`和`allowedOriginPatterns`是用于配置CORS(跨源资源共享)策略的两个关键属性。

跨域处理:

 

@Configuration  //表示这是一个配置类
public class WebMvcConfig extends WebMvcConfigurationSupport {
 
    /**
     * SpringBoot处理跨域
     *
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 设置允许跨域的路径
        registry.addMapping("/**")
                // 设置允许跨域请求的域名
                .allowedOriginPatterns("*") // 使用模式匹配
                // 是否允许cookie
                .allowCredentials(true)    //TODO 此处注意,后续会改
                // 设置允许的请求方式
                .allowedMethods("GET", "POST", "DELETE", "PUT")
                // 设置允许的header属性
                .allowedHeaders("*")
                // 跨域允许时间
                .maxAge(3600);
    }
}

 

 

关于跨域问题(重点) 参考文章:https://cloud.tencent.com.cn/developer/article/1883429

// 前面提到的跨域配置的这里修改为false

allowCredentials(false)    //TODO 此处注意,后续会改

 

websocket的配置类,这里直接使用配置类编写端点连接,同时定义了一个订阅地址。

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // 注册一个 /notification 端点,前端通过这个端点进行连接
        registry.addEndpoint("/websocket")
                .setAllowedOriginPatterns("*")
                .withSockJS();
    }
 
    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        // 定义了一个客户端订阅地址的前缀信息,也就是客户端接收服务端发送消息的前缀信息
        registry.enableSimpleBroker("/topic");
    }
}

 

 

Nginx 端:

第一步:

修改配置文件nginx.conf

http内添加:

map $http_upgrade $connection_upgrade {  
        default upgrade;  
        '' close;  
    }  

server添加:

 

server {

        listen       123;
        server_name game.123.com;
        ssl on;
        ssl_certificate D:/nginx-1.18.0/ssl/game_123.crt;
        ssl_certificate_key D:/nginx-1.18.0/ssl/game_123.key;
        ssl_session_timeout 30m;
        ssl_verify_client off;

       location / {

        proxy_pass http://websocket;
        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

     }

    }

启动 nginx 服务

测试wss连接方式