jcommunicator
v1.0.2
Published
This is a communication framework based on node socket.
Readme
#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); }});
