Node.js 显示多个客户端连接的服务器(网络节点)
我试图使一个服务器监听面向internet的端口,并将传入的http请求转发到另一个端口监听的内部express服务器。下面是我正在使用的代码的相关部分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
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如果它解决了你的问题,你可以接受答案:)不必担心,我会将你的回答标记为答案,因为你帮助我理解了为什么会发生这种情况。但是,我的问题仍然没有解决,因为我正在尝试创建一个具有错误处理的代理服务器,如中所述。再次感谢。