首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在socket.io和socket.io流之间上传文件

在socket.io和socket.io流之间上传文件
EN

Stack Overflow用户
提问于 2016-09-04 17:34:33
回答 1查看 849关注 0票数 1

许多教程直接教授通过socket.io上传文件,但我发现Socket.IO流也可以这样做

  1. 使用Socket.IO流将文件上传到服务器有什么好处?
  2. 如果文件大小很小(~300 it ),是否需要流?
  3. 流会节省服务器的内存吗?
  4. 如果我使用base64编码通过websocket上传一些文件(~8mb),会不会对服务器造成不良影响?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-04 18:15:06

使用流有几个原因:

  1. 它包含了许多预先打包、已经测试过的功能,这通常是实现某些数据传输功能的最简单和最可靠的方法。
  2. 流进行自动流控制和缓冲区管理.这使得内存管理保持为托管值,即使在流大对象时也是如此。
  3. 流提供了一个标准接口,可以轻松地连接到其他代码(如转换、其他存储介质等)。
  4. 已经内置了很多错误处理。

是否使用流媒体确实是一个逐案的基础。如果您知道流,并且您只是尝试从A点发送文件到B点,我几乎总是使用流,除非有特定的原因不使用(您所追求的某些特性很难用流实现)。

您没有显示您的非流代码是如何工作的,因此我们很难直接比较流选项和您尚未显示的代码,但下面是您的具体问题的猜测:

使用Socket.IO流将文件上传到服务器有什么好处?

见上面的要点。

如果文件大小很小(~300 it ),是否需要流?

“需要流”取决于很多事情。在300 to,不可能有数以千计的飞行在同一时间,你可能不需要“需要”流。但我会反过来问自己一个问题。为什么不流出来呢?如果你有现成的代码,为什么不使用它呢?

流会节省服务器的内存吗?

这取决于您比较它的实现是什么,但是由于流具有流控制和管理缓冲本身,所以对于内存的使用通常是有效的。

如果我使用base64编码通过websocket上传一些文件(~8mb),会不会对服务器造成不良影响?

这完全取决于您的实现。我不认为webSocket是专门为文件上传而构建的。在大多数情况下,我可能会使用webSocket作为控制通道,并通过http服务器进行大文件上传,而上传是一个成熟的特性。首先,对于某些类型的数据,base64编码并不是特别有效。http和webSocket都支持二进制传输,这通常对文件数据更有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39319675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档