3
我的node.js服務器將執行某些操作,上傳的文件,我想,以反映近實時的進度返回給客戶端。此操作大約需要30秒 - 1分鐘即可完成。的Node.js服務器操作的客戶端進度指示器
理想的情況下,在文件上傳時,客戶端將能夠觀察到對文件服務器操作的進度。
我既可以定期進行民意調查,長輪詢,或者通過網頁套接字連接到服務器,但所有這些似乎都需要相當複雜的設置爲30秒,1分鐘進度指示器。
有更好的方法嗎?
我的node.js服務器將執行某些操作,上傳的文件,我想,以反映近實時的進度返回給客戶端。此操作大約需要30秒 - 1分鐘即可完成。的Node.js服務器操作的客戶端進度指示器
理想的情況下,在文件上傳時,客戶端將能夠觀察到對文件服務器操作的進度。
我既可以定期進行民意調查,長輪詢,或者通過網頁套接字連接到服務器,但所有這些似乎都需要相當複雜的設置爲30秒,1分鐘進度指示器。
有更好的方法嗎?
我會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