我正在编写一个浏览器游戏,正在寻找一种向node.js
服务器发送原始数组缓冲区的方法。
我不喜欢在JSON
上发送WebSockets
字符串的想法,因为:
理想情况下,我可以为每种消息类型设置一个模式,构造该消息,并将其原始数组缓冲区发送到服务器。像这样:
schema PlayerAttack {
required int32 damage;
required int16[] coords;
required string name;
}
var message = new PlayerAttack(5, [24, 32], "John");
websockets.send(message.arrayBuffer());
然后它将作为缓冲区到达Node.js服务器,并选择解码到对象。
谷歌的Protocol Buffers几乎适合这种用例,但速度太慢而且开销太大(比基准测试的JSON.parse
慢7倍,并且包含我没用的标记等功能)。