我正在尝试构建一个转发代理服务器,该服务器可以请求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似乎总是空白。
我迷路了。任何帮助表示赞赏。
答案 0 :(得分:1)
原始问题中发布的代码证明工作正常。问题与正在使用的ssl证书有关。请求未通过目标服务器,因为TLS握手失败。