Skip to content

rohanrhu/json-tcp-socket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json-tcp-socket

JSON messaging over TCP sockets for node.js

Download count

Install with npm

npm install json-tcp-socket

Without TLS

Server:

var JSONTCPSOCKET = require('json-tcp-socket');

var JSONTCPSOCKET = new JSONTCPSOCKET({tls: false});
var server = new JSONTCPSOCKET.Server();

server.on('connection', function (socket) {
    console.log('client connected: ', socket.socket.remoteAddress);

    socket.on('data', function (data) {
        console.log('json:', data.item);
    });

    var a = {item: 'A', a: 'asda'};
    var b = {item: 'B', b: 'asdasa'};
    var c = {item: 'asdadsadsadsasd87a8ds7ads67ad6sa6dsa', a: 1, b: 2, c: 3, d: 'asda', d: 'asdadsa'};
    var d = '{"item": "asdaasda", "a": "1", "b": "2", "c": "3", "d": "asda", "d": "asdasda"}';
    var e = '{"item": "ee", "a": "1", "d": "643", "d": "123"}';
    var f = '{"item": "dd", "a": "1", "d": "643", "d": "123"}';

    socket.write(a);
    socket.write(a);
    socket.write(a);
    socket.write(b);

    setInterval(function () {
        socket.write(e);
    }, 1000);

    setInterval(function () {
        socket.write(f);
    }, 1500);

    socket.write(d);
    socket.write(c);
    socket.write(b);
    socket.write(b);
});

server.listen(5055, '0.0.0.0');

console.log('Server listening 0.0.0.0:5055');

Client:

var JSONTCPSOCKET = require('json-tcp-socket');

var JSONTCPSOCKET = new JSONTCPSOCKET({tls: false});
var socket = new JSONTCPSOCKET.Socket();

socket.on('connect', function () {
    console.log('connected');

    socket.on('data', function (data) {
        console.log('json:', data.item);
    });

    var a = {item: 'A', a: 'asda'};
    var b = {item: 'B', b: 'asda'};
    var c = {item: 'asda', a: 1, b: 2, c: 3, d: 'asda', d: 'asda'};
    var d = '{"item": "98989182391829381", "a": "1", "b": "2", "c": "3", "d": "asda", "d": "1231321"}';
    var e = '{"item": "ee", "a": "1", "d": "643", "d": "123"}';
    var f = '{"item": "dd", "a": "1", "d": "643", "d": "123"}';

    socket.write(a);
    socket.write(d);
    socket.write(b);

    setInterval(function () {
        socket.write(e);
    }, 1000);

    setInterval(function () {
        socket.write(f);
    }, 1500);

    socket.write(b);
    socket.write(a);
    socket.write(a);
    socket.write(a);
    socket.write(c);
});

socket.connect(5055, '127.0.0.1');

TLS

Server:

var fs = require('fs');
var JSONTCPSOCKET = require('json-tcp-socket');

var JSONTCPSOCKET = new JSONTCPSOCKET({tls: true});
var server = new JSONTCPSOCKET.Server({
    key: fs.readFileSync(__dirname+'/cert/tls.key'),
    cert: fs.readFileSync(__dirname+'/cert/tls.crt')
});

server.on('secureConnection', function (socket) {
    console.log('client connected: ', socket.socket.remoteAddress);

    socket.on('data', function (data) {
        console.log('json:', data.item);
    });

    var a = {item: 'A', a: 'asdasda'};
    var b = {item: 'B', b: 'asdasda'};
    var c = {item: '1231', a: 1, b: 2, c: 3, d: '1231321', d: '1231321'};
    var d = '{"item": "98989182391829381", "a": "1", "b": "2", "c": "3", "d": "1231", "d": "1231231"}';
    var e = '{"item": "ee", "a": "1", "d": "643", "d": "123"}';
    var f = '{"item": "dd", "a": "1", "d": "643", "d": "123"}';

    socket.write(a);
    socket.write(a);
    socket.write(a);
    socket.write(b);

    setInterval(function () {
        socket.write(e);
    }, 1000);

    setInterval(function () {
        socket.write(f);
    }, 1500);

    socket.write(d);
    socket.write(c);
    socket.write(b);
    socket.write(b);
});

server.listen(5055, '0.0.0.0');

console.log('Server listening 0.0.0.0:5055 over TLS');

Client:

var JSONTCPSOCKET = require('json-tcp-socket');

var JSONTCPSOCKET = new JSONTCPSOCKET({tls: true});
var socket = new JSONTCPSOCKET.Socket();

socket.on('secureConnect', function () {
    console.log('connected');

    socket.on('data', function (data) {
        console.log('json:', data.item);
    });

    var a = {item: 'A', a: 'asda'};
    var b = {item: 'B', b: 'asda'};
    var c = {item: '1231', a: 1, b: 2, c: 3, d: '1231', d: '1231'};
    var d = '{"item": "1231", "a": "1", "b": "2", "c": "3", "d": "123", "d": "123132"}';
    var e = '{"item": "ee", "a": "1", "d": "643", "d": "123"}';
    var f = '{"item": "dd", "a": "1", "d": "643", "d": "123"}';

    socket.write(a);
    socket.write(d);
    socket.write(b);

    setInterval(function () {
        socket.write(e);
    }, 1000);

    setInterval(function () {
        socket.write(f);
    }, 1500);

    socket.write(b);
    socket.write(a);
    socket.write(a);
    socket.write(a);
    socket.write(c);
});

socket.connect({
    port: 5055,
    host: '127.0.0.1',
    rejectUnauthorized: false
});

License

MIT