我正在使用带有nodejs的Angular
我在每个窗口滚动上向服务器发送get请求
它适用于5个请求,但在5个请求后它停止工作。
我正在使用$http.get('url')
我现在保持网址相同。
如何保持超过5个请求?
答案 0 :(得分:0)
原因是node.js使用" http代理"创建http连接。这个连接实现套接字连接池,每个主机+端口的默认限制数为5,http代理添加"连接:保持活动" param在调用请求时,则无法释放返回的连接,因此以下请求只能等待。
有三种方法可以解决这个问题
禁止HTTP代理,添加代理:调用get方法时为false。像
var http = require(' http'); app.get(' /status.taobao' ;, function(req,res){ http.get({host:' 127.1',port:7001,agent:false,path:' /status.taobao'},function(res){ res.send(res.statusCode); })。on(' error',function(err){ logger.error(ERR); res.send(404); }); });
设置http全局对象属性。
http.globalAgent.maxSockets = 1000;
当reqeust返回
时自动关闭连接http.get(options,function(res){ })。on(" socket",function(socket){ socket.emit(" agentRemove&#34); 我推荐第一个。