通过 websockets 使用 blob 发送附加数据

Send additional data with blob through websockets

Websockets 支持发送 blob,但是我们如何发送额外的文本数据呢?

我的用例是文件上传器。我将每个文件分成多个部分,一次最多发送 3 个部分到服务器。在服务器上,我需要一种方法来识别这些切片的顺序,以便重建文件。这就是为什么我需要将切片的索引与 blob 以及文件的名称一起发送(可以上传多个文件)

发送带有二进制数据的元数据的最简单方法是按大小分隔。您可以生成一个随机数来标识文件(64 位 int 或 UUID)。将此数字添加到所有文件块,然后添加块号(比如 2 个字节)。因此,您将拥有一个如下所示的协议:前 8 个字节(如果您选择 UUID,则为 16 个字节)用于标识符,然后 2 个字节用于块编号,然后是数据。先正常发送元数据 JSON。元数据将包含文件名和 ID,并且可能是您可能需要的其他数据,例如块数。因为可以有更多的方法来解决这个问题。