我正在创建节点js应用程序作为与tcp套接字服务器通信的http服务器,代码看起来像这样:
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 :(得分:0)
你想在套接字连接中使用req / res,你想在每个client.write发送你的其他服务使用相同的uid响应,以保持关系一对一地req / res,你不要&#39对于保证的单一性有其他选择。
答案 1 :(得分:0)
有一个昂贵的资源,因为TCP客户端(或客户端)必须在节点请求之间共享,因此socket-pool可以帮助您。