Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用节点代理WebSocket?_Javascript_Node.js_Http_Websocket_Proxy - Fatal编程技术网

Javascript 如何使用节点代理WebSocket?

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

我正在使用Node创建一个简单的反向代理服务器。要使用它,您首先为您想要拥有的每个域名配置一个地址,然后服务器根据
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
模块,那就太好了

谢谢大家!