jcommunicator v1.0.2
#JCommunicator
JCommunicator is a library for communication based TCP socket. it provided the simple communication framework with client side and server side included.
##Reference
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 } });
Status
The TCP request status: SUCCESS or ERROR
Message
Message is a base class to define message information. You need to implement special child class based on it.
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();
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
Define custom services.
function sampleService(){ } sampleService.prototype={ say:function(data){ console.log(data); return "world"; } }; module.exports=sampleService;
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.
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); }); });
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); }
});