Javascript 如何使用节点代理WebSocket?
我正在使用Node创建一个简单的反向代理服务器。要使用它,您首先为您想要拥有的每个域名配置一个地址,然后服务器根据Javascript 如何使用节点代理WebSocket?,javascript,node.js,http,websocket,proxy,Javascript,Node.js,Http,Websocket,Proxy,我正在使用Node创建一个简单的反向代理服务器。要使用它,您首先为您想要拥有的每个域名配置一个地址,然后服务器根据Host头代理请求。 它适用于普通的HTTP/HTTPS,但代理WebSocket请求时遇到问题 当前我的代码如下所示(response正在返回到此处的客户端): const选项={ 主机名:route.targetIP, 港口:route.targetPort, 路径:request.path, 方法:request.method, headers:request.headers
Host
头代理请求。它适用于普通的
HTTP
/HTTPS
,但代理WebSocket
请求时遇到问题
当前我的代码如下所示(response
正在返回到此处的客户端):
const选项={
主机名:route.targetIP,
港口:route.targetPort,
路径:request.path,
方法:request.method,
headers:request.headers
};
const req=http.request(选项,(res)=>{
response.writeHead(res.statusCode、res.statusMessage、res.headers);
res.pipe(响应);
});
请求开启('升级',(分辨率、插座、磁头)=>{
response.writeHead(res.statusCode、res.statusMessage、res.headers);
res.pipe(响应);
});
当收到WebSocket
连接时,握手成功,但几秒钟后连接关闭。为什么会发生这种情况?我如何解决
我想使用相同的代码代理HTTP
和Websocket
请求,因为Websocket
应该与HTTP
兼容。如果我可以避免使用任何库,而只在节点中使用http
模块,那就太好了
谢谢大家!