File Upload & Google Protobuf

File Upload & Google Protobuf

本文关键字:Google Protobuf amp Upload File      更新时间:2023-09-26

我很难弄清楚如何使用Google协议缓冲区通过WebSocket发送文件。

我的缓冲区消息结构是

message FileData_m {
    required uint32 block = 1; // File starting offset
    required bytes data = 2;   // Size of 65536 for blocks
}

这个想法是将文件分解为块并通过 WebSocket 发送。目前,我正在运行一个 Node.js 服务器来处理主机和服务器之间的交互,我只是不知道如何以二进制方式正确发送文件。

任何帮助和/或为我指出正确的方向都会非常有帮助!

解决方案是确保我的数据是使用数组缓冲区发送

var dataToSend = new ArrayBuffer(65536);
dataToSend = file; // File that was uploaded from file chooser

然后在创建 protobuf 消息时,只需使用该数组缓冲区作为数据源

var FileData = new FileData({
  "block": 0,
  "data": dataToSend
});