我使用节点在套接字上发送二进制值,并希望在数据前面发送一个4字节长度的值,以便接收方知道要预期的数据量。
如何使用缓冲区完成此操作?我使用Protobuf节点首先构造一个缓冲区,然后我需要将大小附加到缓冲区的开头。
答案 0 :(得分:0)
要附加到当前缓冲区的开头,最简单的方法是创建一个新缓冲区。
var buf = // Protobuf buffer
// Create a 4-byte buffer with the length.
var prefix = new Buffer(4);
prefix.writeUint32LE(buf.length, 0);
// Join them together as a new Buffer.
var data = Buffer.concat([prefix, buf]);