最近项目中有端对端通信场景實时性要求较高,考虑后选用了websocket 这一通信协议本地做了个demo测试,跑的好好的部署到测试web服务器器上,出现了客户端连接web服务器端时提礻404的问题下面来看下。
本地客户端程序简单写了个html,连接到web服务器端成功后的页面如下
将web服务器端代码部署到测试web服务器器上想跟另一端做联调测试,部署完后本地客户端再次连接,显示异常:
看浏览器控制台报错如下:
HTTP的Upgrade协议头机制用于将连接从HTTP连接升级为WebSocket连接Upgrade机淛使用了Upgrade协议头和Connection协议头。反向代理web服务器器在支持WebSocket协议方面面临着一些挑战挑战之一是WebSocket是一个逐段转发(hop-by-hop)协议,因此当代理web服务器器拦截到来自客户端的Upgrade请求时代理web服务器器需要将自己的Upgrade请求发送给后端web服务器器,包括合适的请求头而且,由于WebSocket连接是长连接与傳统的HTTP端连接截然不同,故反向代理web服务器器还需要允许将这些连接处于打开状态而不能因为其空闲就关闭了连接。