在 socket.io 和 socket.io 流之间上传文件
upload file between socket.io and socket.io stream
很多教程都教直接通过socket.io上传文件,但我发现socket.io-stream也可以做到这一点
- 使用socket.io-stream上传文件的优势是什么
服务器?
- 如果文件很小(~300kb),我需要串流吗?
- 流媒体会节省服务器内存吗?
- 如果我上传一些文件 (~8mb)
通过使用base64编码的websocket,它会影响服务器吗
以一种糟糕的方式?
非常感谢
使用流媒体的原因有很多:
它包含许多预先打包的、已经过测试的功能,这些功能通常是实现某些数据传输功能的最简单、最可靠的方法。
Streaming 进行自动流量控制和缓冲区管理。这使内存管理保持在托管值,即使在流式传输大型对象时也是如此。
Streaming 提供了一个标准接口,可以轻松挂钩其他代码(如转换、其他存储介质等...)。
已经内置了很多错误处理。
是否使用流式传输实际上是根据具体情况而定。如果你知道流媒体并且你只是想将文件从 A 点发送到 B 点,我几乎总是使用流媒体,除非有一些特定的原因不这样做(你想要的一些功能很难通过流媒体实现).
您没有展示您的非流式代码如何工作,因此我们很难将流式选项直接与您未展示的代码进行比较,但这里是对您的具体问题的猜测:
what is the advantage of using socket.io-stream to upload file to server?
参见以上几点。
If the file size is small(~300kb), do I need to stream it?
"Need to stream it" 取决于很多事情。在 300kb 的情况下,不可能同时播放数千个这样的视频,您可能不会 "need" 进行流式传输。但我会反过来问自己一个问题。为什么不流式传输呢?如果您有现成的代码,为什么不使用它呢?
Will streaming save memory of server?
这取决于您将其与哪种实现进行比较,但由于流式传输具有流量控制并自行管理缓冲,因此它通常可以高效地使用内存。
If I upload some files (~8mb) through websocket using base64 encoding, will it impact the server in a bad way?
这完全取决于您的实施。我不会说 webSocket 是专门为优化文件上传而构建的。在大多数情况下,我可能会使用 webSocket 作为控制通道并通过 http 服务器上传大文件,其中上传是一项成熟的功能。对于初学者来说,base64 编码对于某些类型的数据并不是特别有效。 http 和 webSocket 都支持二进制传输,这通常对文件数据更有效。
很多教程都教直接通过socket.io上传文件,但我发现socket.io-stream也可以做到这一点
- 使用socket.io-stream上传文件的优势是什么 服务器?
- 如果文件很小(~300kb),我需要串流吗?
- 流媒体会节省服务器内存吗?
- 如果我上传一些文件 (~8mb) 通过使用base64编码的websocket,它会影响服务器吗 以一种糟糕的方式?
非常感谢
使用流媒体的原因有很多:
它包含许多预先打包的、已经过测试的功能,这些功能通常是实现某些数据传输功能的最简单、最可靠的方法。
Streaming 进行自动流量控制和缓冲区管理。这使内存管理保持在托管值,即使在流式传输大型对象时也是如此。
Streaming 提供了一个标准接口,可以轻松挂钩其他代码(如转换、其他存储介质等...)。
已经内置了很多错误处理。
是否使用流式传输实际上是根据具体情况而定。如果你知道流媒体并且你只是想将文件从 A 点发送到 B 点,我几乎总是使用流媒体,除非有一些特定的原因不这样做(你想要的一些功能很难通过流媒体实现).
您没有展示您的非流式代码如何工作,因此我们很难将流式选项直接与您未展示的代码进行比较,但这里是对您的具体问题的猜测:
what is the advantage of using socket.io-stream to upload file to server?
参见以上几点。
If the file size is small(~300kb), do I need to stream it?
"Need to stream it" 取决于很多事情。在 300kb 的情况下,不可能同时播放数千个这样的视频,您可能不会 "need" 进行流式传输。但我会反过来问自己一个问题。为什么不流式传输呢?如果您有现成的代码,为什么不使用它呢?
Will streaming save memory of server?
这取决于您将其与哪种实现进行比较,但由于流式传输具有流量控制并自行管理缓冲,因此它通常可以高效地使用内存。
If I upload some files (~8mb) through websocket using base64 encoding, will it impact the server in a bad way?
这完全取决于您的实施。我不会说 webSocket 是专门为优化文件上传而构建的。在大多数情况下,我可能会使用 webSocket 作为控制通道并通过 http 服务器上传大文件,其中上传是一项成熟的功能。对于初学者来说,base64 编码对于某些类型的数据并不是特别有效。 http 和 webSocket 都支持二进制传输,这通常对文件数据更有效。