2014-04-12 87 views
3

我的node.js服務器將執行某些操作,上傳的文件,我想,以反映近實時的進度返回給客戶端。此操作大約需要30秒 - 1分鐘即可完成。的Node.js服務器操作的客戶端進度指示器

理想的情況下,在文件上傳時,客戶端將能夠觀察到對文件服務器操作的進度。

我既可以定期進行民意調查,長輪詢,或者通過網頁套接字連接到服務器,但所有這些似乎都需要相當複雜的設置爲30秒,1分鐘進度指示器。

有更好的方法嗎?

回答

2

我會socket.io做到這一點。更好的方法可能是可用的,但socket.io配置相對容易。

您使用Express.js嗎?如果確實如此,請確保查看特定於Express的部分以瞭解有關配置的詳細信息。配置完成後你要做到以下幾點:

在服務器上,你會想發出一個新的狀態

socket.emit('status','aok!'); 

在客戶端,你將要監聽來自服務器的新的狀態

你可能要考慮的是調整心跳時間
socket.on('status', function (msg) { 
    console.log(msg); 
    //Put code here to update the page! 
}); 

東西。基本上,服務器每隔一段時間就對客戶端進行一次ping,以檢查它們是否仍然連接。我相信默認情況下每25秒發生一次,超時發生在60秒後沒有響應。您可能想延長心跳之間的時間,甚至完全禁用它們。 希望這有助於! @ bobbyg603