head_body_buffers

2.0.0 • Public • Published

Overview

When transfer packets in network composed of a fixed length "head" and a variable length "body", the "data" event emitted by node socket probably not a complete packet, but part of several packets. This tool help you get the "head" and "body" from the buffers.

If the "head" and "body" is in a single buffer, data will not be copyed to a new buffer, just use buffer.slice() to reference data.

see the test for more usage samples.

Install

npm install head_body_buffers

Example

var net = require('net');
var HeadBodyBuffers = require('head_body_buffers').HeadBodyBuffers;
 
function packetLength(data) {
    var len = data[0];
    len += (data[1] << 8);
    len += (data[2] << 16);
    return len;
}
 
var hbd = new HeadBodyBuffers(4, packetLength);
hbd.on('packet', function (packet) {
    var head = packet.slice(0, 4);
    var body = packet.slice(4);
    console.log("head:", head, head.length);
    console.log("body:", body.toString(), body.length);
});
 
var client = net.connect(3306);
client.on('data', function(data) {
  hbd.addBuffer(data);
});

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.0.0
    11
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 2.0.0
    11
  • 1.0.0
    2

Package Sidebar

Install

npm i head_body_buffers

Weekly Downloads

13

Version

2.0.0

License

none

Last publish

Collaborators

  • freedaxin