javascript - 文件上传和 Google Protobuf

标签 javascript node.js protocol-buffers

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

我的缓冲区消息结构是

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

这个想法是将文件分成 block 并通过 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
});

关于javascript - 文件上传和 Google Protobuf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753395/

相关文章:

javascript - 对文档中的所有元素使用函数

node.js - PassportJS 重命名 "user"对象

json - Protocol Buffer 格式的匿名结构

node.js - Azure Web Node js

java - 在 Java 中从 Memcached 存储和检索 Protocol Buffer 数据

javascript - 如何在 Javascript 中测试 google.protobuf.Timestamp?

javascript - 如何在客户端合并两个音频文件。 (甚至服务器端)

javascript - TypeError : combo. getSelection (...) 在渲染事件中为 null。扩展6

javascript - Javascript 2d Box 的碰撞检测

node.js - Node.js 中的动态下拉菜单