sproc

shared process

sproc

This module is useful when you want to spawn a single daemon and be able to connect to it from other processes.

workflow:

  • attempt to connect to daemon
  • if connection fails, spawn daemon (return to first step)
  • upon connection, callback with a stream

npm install sproc

 
// echo daemon 
 
var clients = 0;
 
module.exports = function(optionsstream) {
  clients++;
 
  stream.write(clients + ' clients');
  stream.on('end', function() {
    clients--;
    if (clients > 0) {
      stream.write(clients + ' clients');
    } else {
      process.exit();
    }
  });
 
  stream.pipe(stream, { end: false });
};
 
 
var sproc = require('sproc');
 
sproc({
  script: './daemon',
  port: 4499,
}, function(proc) {
  proc.stream.write('hello');
  stream.on('data', console.log); // outputs hello 
});
 
  • port - port to use for listening/connecting (default: 4499)
  • keepProcessReference - do not detatch from the daemon (default: false)
  • log - a function (optional)

MIT