快速路由 - 异步longpolled请求需要很长时间才能命中

时间:2016-06-08 08:14:55

标签: node.js express routing long-polling

假设像这样的简单路由:

var express = require( 'express' );
var app = express();

app.get( '/', function( req, res ) {
    console.log( "Route hit" );
} );

app.listen( 8081 );

通过多个选项卡(localhost:8081)在浏览器上请求路由会导致请求与请求的实际注册之间出现意外的长暂停:

C:\tasks\node_programs\test>node main.js
1: route hit -> 6917
2: route hit -> 27697
3: route hit -> 28146
4: route hit -> 28599

我刷新请求路线点击1 路线点击2,3和4 的标签之间的时差最多为1秒。

为什么以及如何在发送后立即注册所有事件?

旁注:当然,如果我在路线中发送回复,一切正常,但我想注册请求并仅在符合某些条件后发送回复(在实际应用中我等待事件被触发)。

已解决:请勿通过浏览器测试HTTP请求问题

相反,你可以使用例如这个脚本:

var requestify = require('requestify');

var i = 0;
while ( i < 10 ) {
  i++;
  requestify.get('http://localhost:8081')
    .then(function(response) {
        // Get the response body (JSON parsed or jQuery object for XMLs)
        response.getBody();
    }
  );
}

0 个答案:

没有答案