Easily frame your socket data in your own streams
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()).
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 = ;framing_bufferon'frame'// got my full frame!;my_socketon'data'framing_bufferpushdata;;
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 fieldvar options =frame_length_size: 2return offset_bufferreadUInt16BE;;var framing_buffer = 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).
npm install framing-buffer