2.0.0 • Published 12 years ago
head_body_buffers v2.0.0
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 "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 usage.
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 (head, body) {
console.log("head:", head, head.length);
console.log("body:", body, body.length);
});
var client = net.connect(3306);
client.on('data', function(data) {
hbd.addBuffer(data);
});