2014-02-16 119 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握手失敗。