无法成功建立部署新环境Websocket。

1.背景:对于已经编写好的项目,需要重新部署一个新的环境,主要是nginx和项目代码。

2.问题:在代码没有改变的前提下,在页面上建立网络套接字总是不成功的。失败的主要原因是603(603是我们后台定制的错误代码,是后缀请求不正确的错误,其实并不重要)

3.检查原因:在后台搜索603错误代码,发现代码是在处理程序中设置的,主要用于处理请求是否合法以及登录令牌的认证逻辑。但是现在当建立一个网络插座时,进入这里怎么样?

4.问题分析:在本地跟踪调试代码,发现如果请求是在建立网络套接字时发起的,它通常不会进入这个预处理器,但是部署的新环境进入了这个方法,所以我猜测:当浏览器发起网络套接字时,它是一个普通的Http请求进入了后台。我突然想到websocket使用的协议不同于Http。当我再次查看通过网络套接字建立链接的请求时,我在请求头中发现了nginx,然后我开始怀疑nginx是否默认支持网络套接字。

5.解决方案:经过一轮搜索,发现如果nginx支持websocket协议,需要在nginx配置服务器中进行配置

//启用网络套接字连接支持

代理集标题升级$ http _ upgrade

代理集头连接“升级 ”;

这一段的配置,然后找到操作和维护配置,发现真的成功了,也是一个从来没有遇到过的问题,特此记录!