gpt4 book ai didi

Node.js 并发 https.requests ECONNREFUSED

转载 作者:太空宇宙 更新时间:2023-11-04 02:43:03 25 4
gpt4 key购买 nike

我正在尝试循环用户并在远程服务器上为每个用户执行请求。许多请求因 ECONNREFUSED 错误而失败。我尝试设置 globalAgent.maxSockets 并交错请求,但问题仍然存在。这是来自远程服务器的响应还是我的 Node 应用程序中的错误?我该如何解决这个问题?

来源:

var https = require("https");       
https.globalAgent.maxSockets = 1024;

var get = function(username, password, cb, failed) {
var post_data = 'username='+user+'&password='+password;

var post_req = https.request({
host:__HOST__,
port:443,
path:'/Controls/CredentialsUI.ashx',
method: "POST",
agent:false,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length
}
}), function(r) {
// get cookie if received
if( r.headers["set-cookie"] )
cb(r.headers["set-cookie"][0].split(";")[0].split("=")[1])
else failed();
});

post_req.on('error', function(error) {
// Error handling here
console.log(error, "for "+username);
});

post_req.write(post_data);
post_req.end();
};

var success = function(){ /*...*/ };
var failure = function(){ /*...*/ };

var users = [/* array about 300 in size */];
users.map(function(user) {
get(user.name, user.password, success, failure);
});

最佳答案

如果您连接到同一服务器,实际上最好降低套接字池(globalAgent.maxSockets),默认值5应该足够了,但这取决于您的负载,当然还有远程服务器的响应时间。因此,您的 Node.js 客户端将重复使用保持事件的连接,而不是创建新的连接。这也可以解决远程服务器拒绝接受更多连接的问题。

关于Node.js 并发 https.requests ECONNREFUSED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605577/

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