【发布时间】:2026-01-13 04:20:03
【问题描述】:
我有两个浏览器之间的数据通道连接,并且想将文件分成块并将它们发送到客户端/从客户端发送它们。
我可以读取文件并将其分解成块就好了。但是我需要一种让接收客户知道的方法
数据块与哪个文件相关(唯一标识符)。
在重构中应用块的位置(索引号)。
在浏览器中传输二进制数据时,似乎整个有效负载必须是二进制的。因此,例如,我不能创建具有上述属性的 JSON 对象,并具有具有实际二进制块的 data 属性。
我想我需要将文件块包装到包含标识符和索引的辅助二进制 blob 中。然后接收客户端将解码第一个包装器块以检查元数据,然后根据该信息处理实际的文件块。
如何在浏览器中执行此操作?我已经进行了很多谷歌搜索,但似乎找不到任何有关这方面的信息,所以想知道我是否可能忽略了一些有助于简化此过程的内容?
【问题讨论】:
-
只需使用Uint8Array等类型化数组构建您自己的协议
-
你能提供一个简单的例子吗?我一直在阅读有关处理二进制数据的各种 javascript API,但我仍然对此感到很困惑,并且还没有找到可靠的例子来说明如何实现上述目标。
-
在下面查看我的答案。我正在使用
Dart而不是JavaScript,所以我无法真正为您提供示例。 -
@NickJennings 不要刻薄,但他的回答完全涵盖了您问题的所有基础,我认为一个好的经验法则是没有代码的问题通常会收到没有代码的答案。
标签: javascript browser blob webrtc rtcdatachannel