【问题标题】:node http get function works only a few timesnode http get 函数只工作几次
【发布时间】:2013-09-27 17:19:19
【问题描述】:

我是 node 新手,所以请多多包涵。我正在尝试编写一个函数来测试以确保在重定向页面之前与 Web 服务器存在实时连接。

这适用于前 6 到 7 次点击,然后页面将不再重定向 - 它只是坐在那里。然后几分钟后,将显示一条警报。

这是怎么回事?!

var http = require("http");
var url = 'http://example.com/';

mainMenu.click(function () {
  var menulink = $(this).attr('rel');
  var menuvar = http.get(url, function () {
    window.location = menulink;
  }).on('error', function () {
    alert('Cannot Connect to Server');
  });
});

【问题讨论】:

    标签: node.js node-webkit


    【解决方案1】:

    我怀疑你对non-flowing streams 有疑问。

    由于您从不使用响应数据,因此连接永远不会关闭。 HTTP Agent 限制并发连接数,并在一段时间后拒绝打开任何新连接。

    您应该尝试手动将响应切换到流动模式:

    mainMenu.click(function () {
      var menulink = $(this).attr('rel');
      var menuvar = http.get(url, function (res) {
        // FORCE FLOWING MODE
        res.resume();
        window.location = menulink;
      }).on('error', function () {
        alert('Cannot Connect to Server');
      });
    });
    

    【讨论】:

    • 谢谢!那照顾了它。这是解决这个问题的最佳方法吗?有没有办法关闭连接?
    • 这是最好的方法:它会消耗所有数据,让服务器关闭响应。
    猜你喜欢
    • 2017-08-22
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多