2016-06-10 117 views
0

我创建为通信,TCP套接字服务器的HTTP服务器节点JS应用程序和代码看起来是这样的:节点JS的HTTP服务器和TCP套接字客户端在一次

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

我是担心代码不能正常处理一次处理多个请求。有没有办法处理多个请求并获得对请求者的正确响应?

回答

0

你想在你的套接字连接中使用req/res,你想在每个client.write处发送uid,用同一个uid来结束你的其他服务responde以保存req/res中的一对一关系,没有其他选择保证unicities。

0

将有一个昂贵的资源作为TCP客户端(或客户),有节点请求之间共享,所以socket-pool可以帮助你这一点。