2014-11-06 116 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. 一旦收到所有块,按正确的顺序组合,并转换为适当的编码方案