2

长期倾听者,第一次来电者。

我需要使用 Node 作为客户端来连接到使用长轮询的实时数据流,并在接收到数据时对每个项目进行处理。

我发现了很多关于使用 Node 作为长轮询服务器的信息,但不是作为客户端。

我知道如何使用“请求”模块来加载 URL,但我的问题是我所知道的唯一回调是“oncomplete”回调,它仅在连接关闭后触发。它不允许我在连接保持打开状态时访问实时接收的数据。我只有在连接终止时才能使用它。

Node 有没有办法打开到远程服务器的 HTTP 连接,然后在收到数据时触发事件?

或者我想另一个问题是……有没有办法在 HTTP 连接进行时访问所有数据进入的任何缓冲区?

谢谢!!!

4

2 回答 2

2

不要使用请求模块。如果你使用 node 内置的东西,那就很简单了。

http://nodejs.org/api/http.html#http_event_data

response.on('data', function (chunk) {
    // chunk is the data just received
})

请求模块本身确实有类似的方法,但我不知道它是什么。

于 2012-09-22T13:49:21.977 回答
2

http.request()中的示例是否有效?

var req = http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});
req.end();
于 2012-09-22T13:49:39.770 回答