jovianserver_ts
v0.1.2
Published
JovianServer (Thread Safe)
Downloads
9
Readme
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).
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