本文主要是介绍SpringBoot 整合 netty-socketio 请求头问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SpringBoot 整合 netty-socketio 的过程中,后端想通过前端发送的 websocket 请求头中携带的 token 来决定是否允许连接。
前端使用的是 socket.io ,查看了它的官网,发现:
意思是说:在浏览器环境下,extraHeaders 选项在请求头中添加自定义的字段是会被忽略的,因为浏览器的 WebSocket API 不支持,在 node.js 和 react 中是可以的。
我就想,既然自定义的字段会被忽略,那我将 token 放在 cookie 中不就可以了:
但是,没用,后端获取到的 cookie 没有 token 信息。
在 github 上 socketIo 项目中发现:
意思是:
如果你仅仅使用 websockets ,目前没有好的替代方法在请求头中携带自定义的字段,如果用 HTTP 长轮询可以。
结论就是: 前端的 socketIo 框架不支持在 websocket 的请求头中携带自定义的字段,所以,我将 token 信息放在 websocket 请求的 url 参数中:
这篇关于SpringBoot 整合 netty-socketio 请求头问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!