包详细信息

slip

colinbdclark66.2k(MIT OR GPL-2.0)1.0.2

A Serial Line Internet Protocol (SLIP) library that runs in Node.js and the browser.

Serial Line Internet Protocol, SLIP, Open Sound Control, OSC

自述文件

slip.js

slip.js is a JavaScript library for encoding and decoding Serial Line Internet Protocol packets. It works in both Node.js and in a web browser.

How Do I Use It?

slip.js provides two pieces of functionality: encoding and decoding messages.

Encoding

Encoding is stateless and synchronous. slip.encode() takes any array-like object containing bytes, such as a Uint8Array, Node.js Buffer, ArrayBuffer, or plain JavaScript Array. It returns a Uint8Array containing the encoded message.

Example

var message = new Uint8Array([99, 97, 116, 33]);
var slipEncoded = slip.encode(message); // Result is [192, 99, 97, 33, 192]

Options

Option Type Description Default value
bufferPadding Number Optional. The number of bytes to add to the message's length when initializing the encoder's internal buffer. 4
offset Number Optional. An offset index into the data argument to start reading the message from. undefined
byteLength Number Optional. The number of bytes of the data argument to read. undefined

Decoding

Decoding is stateful and asynchronous. You need to instantiate a slip.Decoder object, providing a callback that will be invoked whenever a complete message is received. By default, messages are limited to 10 MB in size. You can increase this value by providing a maxBufferSize option to the Decoder constructor, specified in bytes.

To decode a SLIP packet, call decode(). Whenever the slip.Decoder detects the end of an incoming message, it will call its onMessage callback.

Example

var logMessage = function (msg) {
    console.log("A SLIP message was received! Here is it: " + msg);
};

var decoder = new slip.Decoder({
    onMessage: logMessage,
    maxMessageSize: 209715200,
    bufferSize: 2048
});

decoder.decode(packet);
decoder.decode(otherPacket);

Options

Option Type Description Default value
bufferSize Number Optional. The initial size of the decoder's internal buffer. It will be resized as necessary. 1024
maxMessageSize Number Optional. The maximum size of incoming messages, in bytes. Messages larger than this value will cause the onError callback to be invoked. 10485760 (10 MB)
onMessage Function A callback that will be invoked whenever a complete message is decoded. undefined
onError Function A callback that will be invoked whenever an error occurs. undefined

Events

The onMessage callback's signature is:

Argument Type Description
msg Uint8Array The decoded message, with SLIP characters removed.

The onError callback's signature is:

Argument Type Description
msgBuffer Uint8Array A copy of the internal message buffer.
errorMsg String The error message.

License

slip.js is written by Colin Clark and distributed under the MIT and GPL 3 licenses.