通过WebSocket通过Blob发送其他数据

时间:2019-10-03 09:05:16

标签: javascript websocket fileapi

Websockets支持发送Blob,但是我们如何与它们一起发送其他文本数据?

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

1 个答案:

答案 0 :(得分:1)

使用二进制数据发送元数据的最简单方法是按大小定界。您可以生成一个随机数来标识文件(64位int或UUID)。在所有文件块之前添加此编号,然后在块编号之前添加(例如2个字节)。因此,您将拥有一个类似于以下的协议:前8个字​​节(如果选择UUID,则为16个字节)用于标识符,然后2个字节用于块编号,然后是数据。首先将元数据作为普通JSON发送。元数据将具有文件名和ID,并且可能是您可能想要的其他数据,例如块数。当然,可以有更多的方法来解决这个问题。