socket.io【java(com.corundumstudio.socketio)】 集成 springCloudgateway 网关进行转发出现跨域问题解决!!!!巨坑!!!

前言

  • socket.io 项目搭建好了,相关的代码案例在上篇文档由提到
  • 最后需要集成到我们公司的项目中,目前我们公司使用的是spring Cloud gateway 网关,注册中心和配置中心使用的是nacos;解决了socket.io和gateway不通问题;(解决方案按我上篇文档
  • 最后配置好了也通信了,发现报了CORS 跨域!!!

说说遇到的问题过程和解决思路

1. 发现问题:

排查了好久,也没有发现这个问题,
隔天发现请求头出现了两个【Access-Control-Allow-Origin:】

在这里插入图片描述
在这里插入图片描述

2. 百度chatgpt询问:(方法在结尾)

为了解决这个问题,你需要确保服务器端的响应头中只包含一个有效的 Access-Control-Allow-Origin 值

在这里插入图片描述

3. 问题分析

原来我们项目目前网关那边做了跨域处理,而且拦截范围有点广

在这里插入图片描述

在看了看java【com.corundumstudio.socketio】源码分析

在这里插入图片描述

● 方法地址: com.corundumstudio.socketio.handler.EncoderHandler#addOriginHeaders
● 该方法强制进行跨域处理;已在gihub源码提了issue,建议添加可配可选择

在这里插入图片描述

4. 解决方案:

既然com.corundumstudio.socketio. jar 调整不了,就调整网关的跨域,跳过该websocket请求,不需要【/**】

在这里插入图片描述

总结:

● 有什么更改好的解决方案,欢迎共同交流探讨;
● 引流一波关注
● 有什么问题的话,留言讨论(看到就回),或者可以通过公众号后台留言交流
● chatgpt相关了解可以通过关注公众号回复【chatgpt】即可获得

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值