simple tcp client / server for easy json objects / data transmission


simple tcp client / server for easy json objects / data transmission supporting tls

npm install ee-net ee-protocol-json

the Server && conenction class do have almost all properties & events of the native node.js «net» API. aee net API

the constructor of the server class takes the parameters described at tls.createServer for a tls enabled server and the parameters described at net.createServer for non tls mode. you may pass a port and a host parameter as well.

var net = require( "ee-net" );

var server = new net.Server( { port: 9999 } );

the connection event is called when a client has established a new connection on the server

server.on( "connection", function( connection ){
    // see the «connection» chapter below for the docs on connections
} );

the constructor of the connection class takes the options described at tls.connect for tls enabled connections and the parameters port and host for non tls connections.

var connection = new net.Connection( { host:, port: 9999 } );

the message event is called when a message was received and decoeded successfully

connection.on( "message", function( message ){
    log( message );
} )

you may transmit messages using the «send» method

connection.send( { myJSON: "object" } );

the remote and local property return the remote / local configuration

log( connection.remote ); // { address:, family: "IPv4", port: 9999 }
var   net           = require( "ee-net" )
    , server        = new net.Server().listen();

server.on( "conenction", function( connection ){
    connection.on( "message", function( msg ){
        log( msg );  // { hi: "fabian" }
        connection.send( msg );
    } );
} );

// wait until the server is online so we know its port
server.on( "listening", function(){
    var client = new Connection( { 
        port: server.address.port
    } );

    client.on( "message", function( msg ){
        log( msg ); // { hi: "fabian" }
    } );

    client.send( { hi: "fabian" } );
} );

you may implement custom protocol handlers, see ee-protocol-json for more information. you may pass it to the constructors of the Server / Connection using the «protocol» property of the options object.