【问题标题】:Angular js Stop working after few requestsAngular js在几个请求后停止工作
【发布时间】:2014-12-25 14:59:04
【问题描述】:

我正在使用 Angular 和 nodejs

我在每个窗口滚动时向服务器发送获取请求

5 次请求运行良好,但 5 次请求后停止运行。

我正在使用$http.get('url')

我现在保持网址不变。

我怎样才能让它为超过 5 个请求工作?

【问题讨论】:

  • 我们如何在不查看任何代码的情况下为您提供帮助?

标签: angularjs node.js


【解决方案1】:

原因是node.js使用“http代理”来创建http连接。这个连接实现了socket连接池,默认限制num是每个主机+端口5个,http代理添加“Connection: Keep-Alive”参数时调用请求,返回的连接无法释放,所以后面的请求只能等待。

解决这个问题的三种方法

  1. 禁止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('错误', 函数 (err) { logger.error(err); res.send(404); }); });

  2. 设置 http 全局对象属性。

    http.globalAgent.maxSockets = 1000;

  3. reqeust 返回时自动关闭连接

    http.get(选项,函数 (res) { }).on("socket", function (socket) { socket.emit("agentRemove"); 我推荐第一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2013-03-20
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多