Node.js 显示多个客户端连接的服务器(网络节点)

Node.js 显示多个客户端连接的服务器(网络节点),node.js,http,Node.js,Http,我试图使一个服务器监听面向internet的端口,并将传入的http请求转发到另一个端口监听的内部express服务器。下面是我正在使用的代码的相关部分 var net = require('net'); var server = net.createServer(); server.listen(addr.from[3], addr.from[2], function(){ console.log('Server listening'); }); server.on('connect

我试图使一个服务器监听面向internet的端口,并将传入的http请求转发到另一个端口监听的内部express服务器。下面是我正在使用的代码的相关部分

var net = require('net');

var server = net.createServer();

server.listen(addr.from[3], addr.from[2], function(){
  console.log('Server listening');
});

server.on('connection',function(from){
   console.log('Client connected from '+ from.remoteAddress);
   var to = net.createConnection({
     host: addr.to[2],
     port: addr.to[3]
   });

   from.pipe(to);
   to.pipe(from);

   from.on('error',function(err){
     winston.error('Error at unix box'+err);
     to.end();
   });

   to.on('error',function(err){
      winston.error('Error at middleware server'+err);
      from.end();
   });

  from.on('end',function(){
      console.log('Client disconnected ');
      to.end();
  });

  to.on('end',function(){
      console.log('Middleware disconnected');
      from.end();
  });

});

我遇到的问题是,当我在浏览器中打开“ip:port”(这将是面向internet的端口)时,我在控制台上收到多条消息“client connected from xxxxxx”MSG。有人能帮我理解为什么会发生这种情况吗?

每当浏览器连接到网站时,它通常会发出两个请求:正常请求和检索
favicon

有趣的是,
favicon
请求甚至没有显示在浏览器开发工具中

要进行验证,您需要提取请求,将其打印到服务器,然后观察为什么会收到多个请求。为此,
连接
可能太早,请尝试挂接
请求
事件:

server.on('request', funtion(req, res) { console.log(req.url); });

谢谢你的快速回复。我试着像你说的那样勾住请求事件。然而,没有任何东西被打印出来。另外,我想知道挂接其他事件的最佳位置,因为“连接”事件会导致同一客户端的事件处理程序重复。它不会重复,实际上有两个连接。。它只是一个是
GET”/“
或其他什么,另一个是
GET”/favicon.ico”
Bro,我很想给你的答案投上一票,但因为我对stackoverflow非常陌生,我没有至少15票可以投上一票。。。悲伤……我知道@JobinJames如果它解决了你的问题,你可以接受答案:)不必担心,我会将你的回答标记为答案,因为你帮助我理解了为什么会发生这种情况。但是,我的问题仍然没有解决,因为我正在尝试创建一个具有错误处理的代理服务器,如中所述。再次感谢。