2016-06-10 5 views
0

Ich bin Knoten js Anwendung als HTTP-Server erstellen, die auf TCP-Socket-Server kommunizieren, und der Code aussehen ist wie folgt aus:Knoten JS als HTTP-Server und als TCP-Socket-Client auf einmal

var http = require('http'); 
var net = require('net'); 
var url = require('url') ; 
const PORT=8080; 
var client = new net.Socket(); 
    client.connect(9000,'xxx.xxx.xxx.xxx', function(){ 
    console.log('Connected'); 
}); 
function handleRequest(request, response){ 
    var qo = url.parse(request.url,true).query; 
     if(typeof qo.q=="undefined"){ 
      response.end("ERROR"); 
     }else{ 
      client.write(decodeURIComponent(qo.q)); 
      client.on('data',function(data){ 
      response.writeHead(200, {'Content-Type': 'text/html','Access-Control-Allow-Headers':'Content-Type,Access-Control-Allow-Headers,Access-Control-Allow-Origin,X-Powered-ByX-Powered-By','Access-Control-Allow-Origin': '*','X-Powered-By':'Poltak ganteng'}); 
      response.end(data); 
      }); 
     } 
} 

var server = http.createServer(handleRequest); 
server.listen(PORT, function(){ 
     console.log("Server listening on: http://localhost:%s", PORT); 
}); 

ich bin Angst, dass der Code nicht richtig funktioniert, um mehrere Anfragen gleichzeitig zu bearbeiten. Gibt es eine Möglichkeit, mehrere Anfragen zu bearbeiten und eine korrekte Antwort an den Anforderer zu erhalten?

Antwort

0

Sie möchten req/res mit Ihrer Socket-Verbindung verwenden, Sie möchten an jedem Client eine UID senden.Schreiben Sie Ihre anderen Service-Responder mit derselben UID ab, um die Beziehung eins zu eins zu erhalten. t haben andere Wahl für garantierte Unicitys.

0

Die haben eine teure Ressource als TCP-Client (oder Clients), die unter Node-Anforderungen geteilt werden muss, so socket-pool kann Ihnen dabei helfen.

Verwandte Themen