Skip to content

matanamir/framing-buffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Easily frame your socket data in your own streams

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •