通过套接字连接将 https 代理请求传递到命名管道(node.js)
Posted
技术标签:
【中文标题】通过套接字连接将 https 代理请求传递到命名管道(node.js)【英文标题】:Piping https proxy request over socket connection to named pipe (node.js) 【发布时间】:2014-02-16 00:36:23 【问题描述】:我正在尝试构建一个转发代理服务器,它可以接收对 http url 的请求并将该请求通过管道传输到在命名管道上侦听的 https 服务器。
我知道我错过了一个步骤,但我不确定它是什么。这就是我正在尝试使用的...
function pipeToServer(browserRequest, browserSocket, browserRequestHead)
var targetUrl = url.parse('https://' + browserRequest.url);
var namedPipe = getNamedPipe()
console.log("Attempting to connect to " + namedPipe)
var proxySocket = net.connect(namedPipe, function()
console.log("Connected to destination server: " + namedPipe)
console.log("Sending head: " + browserRequestHead)
browserSocket.write('HTTP/' + browserRequest.httpVersion + ' 200 Connection Established\r\n' +'Proxy-agent: Node-Proxy\r\n' + '\r\n');
proxySocket.write(browserRequestHead);
proxySocket.pipe(browserSocket);
browserSocket.pipe(proxySocket);
);
连接成功,但目标服务器的请求处理程序(侦听命名管道)从未被触发。有趣的是,browserRequestHead 似乎也总是空白。
我迷路了。任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:原始问题中发布的代码结果不能正常工作。问题与正在使用的 ssl 证书有关。由于 TLS 握手失败,因此请求无法到达目标服务器。
【讨论】:
以上是关于通过套接字连接将 https 代理请求传递到命名管道(node.js)的主要内容,如果未能解决你的问题,请参考以下文章