2012-09-22 58 views
2

長時間收聽,第一次打電話。長時間輪詢流媒體數據,使用Node as * client *

我需要使用節點作爲客戶端連接到實時數據流,該數據流使用長輪詢並在收到數據時對每個項目執行操作。

我發現很多有關使用節點作爲長輪詢服務器的信息,但不是作爲客戶端。我知道如何使用「Request」模塊來加載URL,但我的問題是我知道的唯一回調是「oncomplete」回調,它只在連接關閉後觸發。它不允許我在連接處於打開狀態時實時訪問正在接收的數據。我只能在連接終止時使用它。

有沒有一種方法讓Node打開到遠程服務器的HTTP連接,然後在接收到數據時觸發事件?

或者我想另一個問題是...有沒有辦法訪問HTTP連接進行時所有數據進入的緩衝區?

謝謝!

回答

2

請勿使用請求模塊。如果你使用節點內建的東西,它非常簡單。

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

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

請求模塊本身也有一個類似的方法,但我不知道它是從我頭頂的東西。

+0

聽起來像我正在尋找...謝謝! – John

+1

只需設置它,完全可行... – John

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();