2014-02-16 180 views
1

我想建立一个转发代理服务器,可以请求一个HTTP网址和管道,请求一个HTTPS服务器监听命名管道。通过套接字连接管道https代理请求到命名管道(node.js)

我知道我错过了一步,但我不确定它是什么。这就是我正在尝试使用的...

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); 
    }); 
} 

连接成功,但目标服务器(监听命名管道)的请求处理程序永远不会被触发。有趣的是,bro​​wserRequestHead总是显得空白。

我迷路了。任何帮助赞赏。

回答

1

在原始问题中发布的代码证明没有问题。问题与正在使用的ssl证书有关。该请求没有传递到目标服务器,因为TLS握手失败。