2011-07-09 2 views
0

Je souhaite créer un proxy TCP et HTTP simple dans node.js - Par exemple, le proxy écoute sur le port 8080 et redirige toutes les demandes TCP vers 127.0.0.1:8181 et toutes les demandes HTTP vers 127.0.0.0.1:8282Proxy TCP/HTTP dans node.js

Je trouve cet extrait sur Google pour un simple proxy HTTP dans 20 lignes de code:

var http = require('http'); 

http.createServer(function(request, response) { 
    var proxy = http.createClient(80, request.headers['host']) 
    var proxy_request = proxy.request(request.method, request.url, request.headers); 
    proxy_request.addListener('response', function (proxy_response) { 
    proxy_response.addListener('data', function(chunk) { 
     response.write(chunk, 'binary'); 
    }); 
    proxy_response.addListener('end', function() { 
     response.end(); 
    }); 
    response.writeHead(proxy_response.statusCode, proxy_response.headers); 
    }); 
    request.addListener('data', function(chunk) { 
    proxy_request.write(chunk, 'binary'); 
    }); 
    request.addListener('end', function() { 
    proxy_request.end(); 
    }); 
}).listen(8080); 

donc, fondamentalement, je dois écouter toute sorte de demande 8080, devinez si elle est TCP ou HTTP, et Ensuite, placez la demande dans le bon chemin. Des astuces utilisant l'extrait ci-dessus?

Merci

+0

HTTP est le transport au niveau de l'application sur TCP. Je suppose que vous dites "essayez de vérifier si ces données tcp font une demande http valide" –

Répondre

Questions connexes