framing-buffer

0.0.3 • Public • Published

framing-buffer

Build Status

Used to easily parse variable-size frame data coming from sockets. It allows a customizable frame length reader if the default isn't acceptable (buf.readInt32BE()).

Usage

To use it, set it as your 'data' event listener. When a full frame is found, the FrameBuffer will emit a "frame" event which can be listened to to get the full frame without the frame size header:

var FramingBuffer = require('framing-buffer'),
    framing_buffer = new FramingBuffer();
 
framing_buffer.on('frame', function(frame) {
    // got my full frame!
});
 
my_socket.on('data', function(data) {
    framing_buffer.push(data);
});

If a custom frame length is required, you can provide the frame length field size and frame length reader function as parameters to the constructor:

// Example of using an unsigned short for the frame length field
var options = {
    frame_length_size: 2,
    frame_length_reader: function(offset_buffer) {
        return offset_buffer.readUInt16BE();
    }
};
 
var framing_buffer = new FramingBuffer(options);

Note that an OffsetBuffer is passed into the frame_length_reader function.

The FramingBuffer keeps track of only one data stream. Keep an instance of this per steam that needs framing (i.e. one per socket / connection).

Install

npm install framing-buffer

Tests

npm test

License

MIT License

Dependencies (2)

Dev Dependencies (1)

Package Sidebar

Install

npm i framing-buffer

Weekly Downloads

0

Version

0.0.3

License

MIT

Last publish

Collaborators

  • matanamir