长期听众,第一次来电。
我需要使用Node作为客户端连接到使用长轮询的实时数据流,并在收到数据时对每个项目执行操作。
我发现有很多关于使用Node作为长轮询服务器的信息,但不是客户端。
我知道如何使用“请求”模块加载URL,但我的问题是我所知道的唯一回调是“oncomplete”回调,它仅在连接关闭后触发。当连接保持打开时,它不允许我实时访问正在接收的数据。我只在连接终止时才使用它。
Node是否有办法打开与远程服务器的HTTP连接,然后在收到数据时触发事件?
或者我想另一个问题是......在HTTP连接正在进行时,有没有办法访问所有数据进入的缓冲区?
感谢!!!
答案 0 :(得分:2)
请勿使用请求模块。如果您使用内置于节点中的内容,则非常简单。
http://nodejs.org/api/http.html#http_event_data
response.on('data', function (chunk) {
// chunk is the data just received
})
请求模块本身也有类似的方法,但我不知道它是什么。
答案 1 :(得分: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();