1.0.2 • Published 8 years ago

jcommunicator v1.0.2

Weekly downloads
1
License
LGPL-3.0
Repository
github
Last release
8 years ago

#JCommunicator

JCommunicator is a library for communication based TCP socket. it provided the simple communication framework with client side and server side included.

##Reference

  1. Async Communicator

    Communicator will help to connect to server and deliver the message and parse the response to return result or errors.

    for example

    new Communicator([Server IP Address],[Server Port]).invoke("sample","say",["hello"], function(status, data, error){
        if(status===Status.SUCCESS){
            //handle success event
        }
        else
        {
            //handle error event
        }
    });
  1. Status

    The TCP request status: SUCCESS or ERROR

  1. Message

    Message is a base class to define message information. You need to implement special child class based on it.

  2. Async Listener

    Listener is the TCP request listener. it will accept the request and process it according to the relative service

    for example

    var listener=new Listener(ip, 8099);
    listener.listen();
  3. Async IPHelper

    The help class will help you to get the local internet IP address.

    for example ipHelper.get(function(error,ip){ //handle IP address. });

##Usage

  1. Define custom services.

    function sampleService(){
    
    }
    
    sampleService.prototype={
        say:function(data){
            console.log(data);
            return "world";
        }
    };
    
    module.exports=sampleService;
  2. Register custom services in configuration file.

    <?xml version="1.0" encoding="utf-8"?>
    <Configuration>
        <Sections>
            <Section name="Services" provider="jcommunicator/lib/server/serviceSectionHandler"/>
        </Sections>
        <Services>
            <Service name="sample" handler="{Relative Path}/sampleService"/>
        </Services>
    </Configuration>

    Tips: The relative path should be coordinate to the app start file.

  3. Load configuration and start listener.

    var configuration=require("config-tea");
    var Listener=require("jcommunicator").Listener;
    var ipHelper=require("jcommunicator").IPHelper;
    
    var manager=configuration.ConfigurationManager;
    manager.init();
    
    ipHelper.get(function(error,ip){
        var listener=new Listener(ip, port);
        listener.listen();
    
        process.on('exit', (code) => {
            listener.close();
            console.log('About to exit with code:', code);
        });
    });
  4. Produce request.

    new Communicator([Server IP Address],[Server Port]).invoke("sample","say",["hello"], function(status, data, error){
    if(status===Status.SUCCESS){
        console.log(data);
    }
    else
    {
        console.error(error);
    }

    });