将二进制数据拆分为node.js中的数组或类

Lor*_*eck 2 javascript node.js

如何通过二进制分隔符拆分Node.js中的二进制数据缓冲区?例如,套接字数据以二进制代码发送,每个字段由\ xb8稀释.如何将其拆分为数组?

更好的是,有没有办法写一个类或可以加载的东西?例如,每个数据包发送由\ xb8分隔的命令参数对.无论如何我可以使用二进制数据变量并进入多个Command实例吗?

fen*_*ent 6

阅读缓冲区文档.

遍历缓冲区中的每个字符,并在遇到指定字符时创建新缓冲区.

function splitBuffer(buf, delimiter) {
  var arr = [], p = 0;

  for (var i = 0, l = buf.length; i < l; i++) {
    if (buf[i] !== delimiter) continue;
    if (i === 0) {
      p = 1;
      continue; // skip if it's at the start of buffer
    }
    arr.push(buf.slice(p, i));
    p = i + 1;
  }

  // add final part
  if (p < l) {
    arr.push(buf.slice(p, l));
  }

  return arr;
}
Run Code Online (Sandbox Code Playgroud)