Javascript 共享大文件

Javascript 共享大文件,javascript,node.js,file-io,socket.io,Javascript,Node.js,File Io,Socket.io,我必须使用node.js开发一个文件共享系统,我不确定如何在用户之间发送大文件 现在,我有一个简单的node.js+express+socket.io服务器,它可以检测连接并允许用户通过执行以下操作来交换小文件: socket.emit('file',selectedFile) 其中selectedFile是来自常规 正如我所说,这适用于小文件,但我不确定如何实现适用于大文件的功能。现在,当我尝试发送更大的文件时,发送文件的用户会断开连接。有什么提示吗?我会这样做 客户端 以流形式打开文件 创建

我必须使用node.js开发一个文件共享系统,我不确定如何在用户之间发送大文件

现在,我有一个简单的node.js+express+socket.io服务器,它可以检测连接并允许用户通过执行以下操作来交换小文件:

socket.emit('file',selectedFile)

其中
selectedFile
是来自常规


正如我所说,这适用于小文件,但我不确定如何实现适用于大文件的功能。现在,当我尝试发送更大的文件时,发送文件的用户会断开连接。有什么提示吗?

我会这样做

客户端

  • 以流形式打开文件
  • 创建特定大小的块(例如10kb)
  • 将索引附加到每个块并发送到服务器
  • 记录服务器对每个索引的确认
  • 若连接断开,只需从上次确认的索引开始重新发送文件块
  • 重复此操作,直到文件完全流式传输
  • 服务器端

  • 从客户端接收数据块
  • 将块存储在临时文件中
  • 向客户发送回执确认
  • 一旦收到所有块,按正确的顺序组装并转换为适当的编码方案

  • 你很可能不得不把它分块发送。