Javascript 通过WebRTC数据通道发送包含元数据的文件块

Javascript 通过WebRTC数据通道发送包含元数据的文件块,javascript,webrtc,filereader,Javascript,Webrtc,Filereader,我有一个文件分块操作,它通过文件读取器将文件分为若干个片段,这些片段通过readAsArrayBuffer读取。我希望通过我的数据通道一次发送一个块,并附加元信息(例如块id)。比如: 现在,当我发送如上所示的数据时,ArrayBuffer缓冲区中的数据将丢失。我想强调的是,我在通过数据通道发送数据时没有遇到任何问题 我想知道如何发送该数据及其相关的元信息,以便在另一端以正确的顺序重新组装文件块 我是否需要使用两个子数组制作一个数组缓冲区,一个子数组包含元信息,另一个子数组包含实际数据?或者有更

我有一个文件分块操作,它通过文件读取器将文件分为若干个片段,这些片段通过
readAsArrayBuffer
读取。我希望通过我的数据通道一次发送一个块,并附加元信息(例如块id)。比如:

现在,当我发送如上所示的数据时,ArrayBuffer
缓冲区中的数据将丢失。我想强调的是,我在通过数据通道发送数据时没有遇到任何问题

我想知道如何发送该数据及其相关的元信息,以便在另一端以正确的顺序重新组装文件块


我是否需要使用两个子数组制作一个数组缓冲区,一个子数组包含元信息,另一个子数组包含实际数据?或者有更简单的方法吗?

有很多方法可以解决这个问题,但基本上需要对数据进行序列化、编码和反序列化、解码。
如果要将元数据与数据一起发送,则需要将两者序列化为uint8array或字符串,并在接收方执行反向操作。

例如,Sharefest使用TLV协议:

我目前遇到了类似的问题,我想知道您是否提出过解决方案?
// Build chunk wrapper
var block = {
  chunkId: id,
  data: buffer
};

// Send the chunk to peer
channel.send(JSON.stringify(block));