将https代理请求通过套接字连接到命名管道(node.js)

时间:2014-02-16 00:36:23

标签: node.js sockets https proxy named-pipes

我正在尝试构建一个转发代理服务器,该服务器可以请求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);
    });
}

连接成功但是从不触发目标服务器的请求处理程序(侦听命名管道)。有趣的是,bro​​wserRequestHead似乎总是空白。

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

1 个答案:

答案 0 :(得分:1)

原始问题中发布的代码证明工作正常。问题与正在使用的ssl证书有关。请求未通过目标服务器,因为TLS握手失败。