Notorious Preying Mantis
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

tcp-ip-connman

1.0.6 • Public • Published

NPM

Build Status codecov Dependency Status Code Climate Known Vulnerabilities Inline docs contributions welcome

What

tcp-ip-connman stands "tcp-ip Connection Manager". As the name says, it takes care of connections for you, with automatic reconnects, heartbeat and events, you don't need to worry if your connections are up or down, tcp-ip-connman will take care of that for you.

With tcp-ip-connman all you need to do is to connect, and forget all your problems!

Why

TCP/IP connections are tricky, mainly becasuse of half-closed and half-open connections.

While Node.js does a decent job dealing with half-closed connections, we can't say the same for half-open connections.

Basically, if the end of a connection dies, the other end will remain open, like nothing happened.

This library takes care of half-open connections, by implementing a heartbeat and by having a event rich API to let you know everything you need.

If you don't want to use the events API, that's fine as well, as tcp-ip-connman manages timeouts and connection drops automatically reconnecting for you.

How

Following are instructions on how to intsall and use tcp-ip-connman. For questions you can ask in the issues page:

Feel free to check the project's page for additional information on the API as well.

Install

npm install tcp-ip-connman --save

API

Examples

Creating a connection manager with a custom heartbeat and connect:

const connmanager = require("tcp-ip-connman");
const heartBeat = heartBeatFactory();
heartBeat.setPing("Marco");
heartBeat.setPong("Polo");
heartBeat.setBeatInterval(50);
heartBeat.setBeatTimeout(150);

const client = connmanager(heartBeat);

client.connect({host: "localhost", port: 8080})
    .then(() => console.log("success!")
    .catch(console.log);

Creating a connection manager with a default PING, PONG and heartbeat:

const connmanager = require("tcp-ip-connman");

//Default PING is Buffer.from([0x01])
//Default PONG is Buffer.from([0x02])
//Default TIMEOUT and INTERVAL are from heartbeatjs (https://www.npmjs.com/package/heartbeatjs)
const client = connmanager();

client.connect({host: "localhost", port: 8080})
    .then(() => console.log("success!")
    .catch(console.log);

Using a previously created connman to define behaviors for the various events:

client.onOpen(online => {
    console.log(`Connection established: ${online}`);
});

client.onClose(online => {
    console.log(`Connection established: ${online}`);
});

client.onRead(data => {
    console.log(`Data received: ${JSON.stringify(data)}`);
});

client.onRetry((error, num) => {
    console.log(`Retry number ${num} due to error ${JSON.stringify(error)}`);
});

install

npm i tcp-ip-connman

Downloadsweekly downloads

1

version

1.0.6

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability