node http get函数只能工作几次

时间:2013-09-27 17:19:20

标签: node.js node-webkit

我是节点新手,所以请耐心等待。我正在尝试编写一个函数来测试,以确保在重定向页面之前存在与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');
  });
});

1 个答案:

答案 0 :(得分:0)

我怀疑您遇到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');
  });
});