Packetize and rebuild a string. Mostly for TCP communication.
npm install packetize-stringpacketize-string
================
Utility for converting arbitrary strings (aka messages) into packets which can be shipped using, eg nodes net functionality then reassembling the packets into messages
bash
npm install --save packetize-string
`
How it works (default mode)
The first character in a packet is the header.
The first 5 bits of the header are reserved for the "mode" (future enhancements).
The next 11 bits of the header are the number of characters in the packet.
Long messages are split into multiple packets by the sender and stitched together by the receiver.
Usage
Messages can be packetizes with either the packetize-string.send() function or by using the Sender object.
Messages can be extracted with either the listener on the Receiver object or the promise returned by packetize-string.receive(socket)
$3
`javascript
"use strict";
var net = require("net");
var Packetizer = require("packetize-string");
var host = "127.0.0.1";
var port = 6116;
var client = new net.Socket();
client.connect(port, host, function() {
client.write(Packetizer.send("Hello World"));
});
`
.
$3
`javascript
"use strict";
var net = require("net");
var Packetizer = require("packetize-string");
var host = "127.0.0.1";
var port = 6116;
var sender = new Packetizer.Sender();
var client = new net.Socket();
client.connect(port, host, function() {
sender.packetize("Hello World");
sender.packetize("How are you?");
client.write(sender.packets());
});
`
.
$3
If the sender sends multiple messages (like in the "Sending a message - using the object" example above", each message causes it's own event, so the 'on' will fire for each message.
`javascript
"use strict";
var net = require("net");
var Packetizer = require("packetize-string");
var host = "127.0.0.1";
var port = 6116;
var receiver = new Packetizer.Receiver()
.on("message", function (msg) {
console.log("Heard: "+msg);
})
.on("error", function (reason) {
console.log("Got an error: "+reason);
});
net.createServer(function (socket) {
console.log("Talking to: " + socket.remoteAddress +":"+ socket.remotePort);
socket.on("data", function (chunk) { receiver.accumulate(chunk); });
})
.listen(port, host);
`
.
$3
If the sender sends multiple messages (like in the "Sending a message - using the object" example above", only the first message is passed on to the success callback. Any other messages will be lost.
`javascript
"use strict";
var net = require("net");
var Packetizer = require("packetize-string");
var host = "127.0.0.1";
var port = 6116;
net.createServer(function (socket) {
Packetizer.receive(socket)
.then(
function ( msg ) {
console.log("Heard: "+msg);
},
function ( reason ) {
console.log("Got an error: "+reason);
}
);
})
.listen(port, host);
``