0.1.2 • Published 9 years ago

jovianserver_ts v0.1.2

Weekly downloads
3
License
GPL3
Repository
bitbucket
Last release
9 years ago

Jovian RPC Socket Server (Thread Safe)

A Threaded extension of the JovianServer. By placing a small script with the same file name as the request method, you can make an RPC request execute inside of a parallel child process (thread).

NPM Version DWX Awesome

Main Execution Process (index.js):

// Include the Jovian Server
var Server = require('jovianserver_ts').Server;

// Create the socket via socket.io or your favorite socket server module
// Note that this has only been tested with socket.io
var io = require('socket.io')(port);

// Extend the server class with your own methods that 
// will be executed by the RPC Request Processor. Every
// method should have "socket" as it's first parameter
Server.prototype.myMethod = function(socket, param1, param2) {
    // Some code
}

var myServer = new Server();

// Begin listening to incoming socket connections
io.on('connection', function(socket) {
    // All events listeners are attached to the Server and need to be 
    // executed from the Server scope, so they have been bound along 
	// with the socket object 

    // Custom event to listen to RPC requests from client
    socket.on('request', myServer.onProcessRequest.bind(myServer, socket));

    // Custom evnet to listen to RPC responses to requests from the server
    socket.on('response', myServer.onProcessResponse.bind(myServer, socket));
});

Worker Thread (workers/testMethod.js):

// The thread will extend the JovianServer Worker class
var Worker = require('jovianserver_ts').Worker;

// You need a method with the same name as the filename.  This will be 
// the function that is executed by the RPC processor. Think of it as
// your thread class' constructor.
Worker.prototype.testMethod = function(param1, param2) {
    // Do something fun
    return {prop: 'Data for the RPC response' };
}

new Worker();

Installation

$ npm install --save jovianserver_ts

Features

  • JSON RPC 2.0 Implementation
  • Can use threads to execute RPC requests
  • Listens to socket servers (tested with socket.io)

Documentation

In progress

Note

Because this processor can function without a socket server, socket.io is not listest as a dependancy. If you plan to use this class with a socket server, you'll need to install tha seperately, however, it is designed to work well with socket.io and may function normally with others as well.

Release History

  • 0.1.0 Initial release