0.1.1 • Published 11 years ago

node-cspread v0.1.1

Weekly downloads
10
License
-
Repository
-
Last release
11 years ago

NODE-CSPREAD

Overview:

 This is a C++ addon to nodejs to interface with the spread C API to provide

a high performance binding to the spread toolkit (see www.spread.org). It contains a thin abstraction called SpreadSession which provides an event based interface where the end user supplies a set of callbacks to handle various events.

Build & Install:

 You must first have the spread toolkit built and installed. The binding.gpy expects the

spread to be installed in the /usr/local/lib directory. Next you can build the addon by doing:

cd node-cspread node-gyp build sudo node-gyp install

Examples:

See the unittest function in spread.js as a usage example.

API:

SpreadSession( daemon_address / 4803@localhost/, uniqueName / system wide unique name like a UUID /, success / callback function executed when connected /, failure / called if we can't connect / );

If successful in connecting to the spread daemon, the success function above is called with an instance of a spread session object. Inside this function the user can join message groups and setup callbacks to handle events:

Example:

function success( session ) { session.join( “group name” ); session.dataHandler = function( group, sender, data ){

       console.log( group + "," + sender + "," + data );
 };
 session.memberJoinedGroup =  function( group, sender ) {
       // detect when a new process has join a group
       // group: name of the spread group 
       // sender: process uniqueName 
 };
 session.memberLeftGroup = function( group, sender ) {
       // detect when a member has left a message group
 };
 
 // these are error conditions
 session.leaveCausedByNetwork = function( group, sender ) {
      // network outage caused a member to leave
 };
 session.leaveCausedByDisconnect = function( group, sender ) {
      // process lost connection to spread (process crash message).
 };
 session.onDisconnect = function( errorText ) {
      // we just lost our connection to spread.
 };   
 session.onError = function( errorText ) {
      // general error event
 };



 // to send a message to other groups
 session.multicast( session.SAFE_MESS, session.SELF_DISCARD,
      “group name”,  JSON.stringify( … some data … ) );

};