【问题标题】:Sending a file chunk WITH meta data over a WebRTC Data Channel通过 WebRTC 数据通道发送带有元数据的文件块
【发布时间】:2014-05-21 16:50:36
【问题描述】:

我有一个文件分块操作,它通过文件读取器将文件拆分为通过readAsArrayBuffer 读取的切片。我想通过我的数据通道一次发送一个带有元信息的块(例如块ID)。喜欢:

// Build chunk wrapper
var block = {
  chunkId: id,
  data: buffer
};

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

现在,当我发送如上所示的数据时,ArrayBuffer buffer 中的数据会丢失。我想强调一下,通过我的数据通道发送数据没有任何问题。

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

我是否需要用两个子数组制作一个 ArrayBuffer,一个带有元信息,另一个带有实际数据,还是有更简单的方法?

【问题讨论】:

  • 我目前遇到了类似的问题,想知道您是否提出过解决方案?

标签: javascript webrtc filereader


【解决方案1】:

有很多方法可以解决这个问题,但基本上你需要对数据进行序列化、编码和反序列化、解码。
如果您想将元数据与数据一起发送,则需要将两者序列化为 uint8array 或字符串,并在接收端执行反转操作。
例如,Sharefest 使用 TLV 协议:https://github.com/Peer5/ShareFest/blob/master/core/protocol/BinaryProtocol.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多