用http.get循环发送请求时遇到的问题
发布于 11 年前 作者 palebluedoc 6058 次浏览 最后一次编辑是 8 年前
var options = {
    host: '192.168.1.80',//80是我的本机
    port: '80',
};

var req = http.get(options);

用这个方法发送请求时如果发送到自己的本机就会很快而且不会报错,但如果把host地址改成192.168.1.2的服务器地址 就会报错,错误如下: events.js:72 throw er; // Unhandled ‘error’ event ^ Error: Parse Error at Socket.socketOnData (http.js:1584:20) at TCP.onread (net.js:525:27) 不明白是为什么,求指点

3 回复

同样问题求问。

短时间大量请求导致的,建议改成一个一个的处理。

看看 agent.maxSockets是否超过了默认的5,代码如下: var agent = http.globalAgent; var options = { host: ‘192.168.1.80’,//80是我的本机 port: ‘80’, };

var req = http.get(options);

req.on(‘error’, function() { console.log('max request sockets: ’ + agent.maxSockets); // 最大连接数默认为5 console.log('current agent.sockets: ’ + agent.sockets[host + ‘:’ + port]); // 当前agent发起的连接数,如果达到5 ,下面的队列会开始排队 console.log('current agent.requests : ’ + agent.requests[host + ‘:’ + port]); // 等待发起request的队列长度 });

回到顶部