gpt4 book ai didi

node.js - 服务器显示多个客户端连接(net nodejs)

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:08:31 27 4
gpt4 key购买 nike

我正在尝试制作一个服务器,该服务器在面向互联网的端口上进行监听,并将传入的 http 请求转发到在另一个端口上监听的内部快速服务器。以下是我正在使用的代码的相关部分。

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”(这将是面向互联网的端口)时,我在控制台上收到多个“从 xxxxxx 连接的客户端”消息。谁能帮我理解为什么会这样?

最佳答案

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

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

要验证,您需要提取发出的请求,将其打印到服务器,然后观察为什么会收到多个请求。为此,connection 可能为时过早,请尝试 Hook request 事件:

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

关于node.js - 服务器显示多个客户端连接(net nodejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com