2014-11-06 110 views
0

我必須使用node.js開發文件共享系統,我不知道如何在用戶之間發送大文件。共享大文件

現在我有一個簡單的node.js +快遞+ socket.io服務器檢測連接,並允許用戶通過只是在做互換小檔案:

socket.emit('file', selectedFile);

其中selectedFileFile對象來自一個正常的<input type="file">

正如我所說,這是工作的小文件,但我不知道我應該如何實現一些適用於較大文件的東西。現在,當我嘗試發送更大的內容時,發送文件的用戶會斷開連接。任何提示?

+0

你很可能不得不將它分塊併發送。 – 2014-11-06 16:39:14

回答

0

這是我會怎麼做

客戶端

  1. 打開文件流
  2. 創建一個特定大小的塊(例如,10KB)
  3. 附加的的每個索引塊併發送到服務器
  4. 記錄來自服務器的每個索引的確認
  5. 如果連接中斷,只需啓動從去年重新發送文件塊公認的指數
  6. 重複,直到文件完全流

服務器端

  1. 從客戶
  2. 存儲塊的接收塊臨時文件
  3. 發送回執確認給客戶
  4. 一旦收到所有塊,按正確的順序組合,並轉換爲適當的編碼方案