Tag: node.js buffer

Node.js在字节数组中使用不同的数据types

例如:我将有数据包含字节(0-100),字节(0-10),两个字节(-30- + 100),布尔( 0/1),字节,两个字节(0-300)。 客户端将接收字节数组(使用缓冲区),并从缓冲区使用偏移量创build的hax中获取数据。 所以我需要始终保持在我从客户端获取的API规范中的字节数。 例: Battery.protorype.onSubscribe = function(maxValuesSize, updateValueCallback) { var bytes = Array(6); bytes[0] = 50; bytes[1] = 2; bytes[2] = -20; bytes[3] = true; bytes[4] = 32; bytes[5] = 290; updateValueCallback(new Buffer(bytes)); 将返回:0x3202ec012022 这当然是不好的,因为两件事情: -20是ec? 290是22? (第一个字节发生了什么?290 dec是0x122,这是两个字节) 事件如果是正确的(如果数字包含在一个字节中),我需要保持大小来保持偏移量,这不会保持偏移量,因为这里的所有数字都是一个字节的大小。 有谁知道如何解决这个问题?

规范的方式从缓冲区中删除多个字节

假设我在Node.js中有一个简单的Buffer,如下所示: const bytes = Buffer.from('abcdefg'); 这个缓冲区实例有slice和concat作为方法,但我真的不知道如何使用这些基本上创buildpopup/移位/拼接数组的function。 这里是缓冲区文档: https : //nodejs.org/api/buffer.html 我基本上想要做的是读取/删除前X个字节,如下所示: function read(x){ // return the first x number of bytes from buffer // and remove those bytes from the buffer // side-effects be damned for the moment } 这里是我所拥有的,但对我来说这似乎是相当“错误的”,尽pipe它似乎也起作用: let items = Buffer.from('abcdefg'); function read(x){ const b = items.slice(0,x); items = items.slice(x,items.length); return b; […]