Nic*_*ngs 0 javascript browser blob webrtc rtcdatachannel
我在两个浏览器之间有一个数据通道连接,并希望将文件分成块并将它们发送到客户端或从客户端发送.
我可以读取文件并将其分解成块.但是我需要一种让接收客户知道的方法
数据块与哪个文件相关(唯一标识符).
块中适用于重建的位置(索引号).
在浏览器中传输二进制数据时,似乎整个有效负载必须是二进制的.因此,我不能创建具有上述属性的JSON对象,并且具有data包含实际二进制块的属性.
我想我需要将文件块包装成包含标识符和索引的辅助二进制blob.然后,接收客户端将解码第一个包装器块以检查元数据,然后根据该信息处理实际文件块.
我怎么能在浏览器中这样做?我已经做了很多谷歌搜索,但似乎无法找到任何关于此的信息,所以想知道我是否可能忽略了一些可以帮助缓解这个过程的东西?
您必须创建自己的协议来传输文件.
File/ Blob对象.您可能还使用split()方法来获取块.您只需使用Uint8Array传输数据即可.
创建满足您需求的协议,例如:
发送初始包(例如类型0x01)
发送数据块(例如类型0x02)
注意:如果要传输多个文件,则应添加ID或其他内容.
在接收方,您可以等待初始包,并创建一个新Uint8Array文件的长度.之后,您可以使用set()在块位置添加接收的数据(偏移= 0-based-chunk-number*chunk-size).收到所有块后,您可以创建Blob.
| 归档时间: |
|
| 查看次数: |
568 次 |
| 最近记录: |