Skip to content

Latest commit

 

History

History
67 lines (44 loc) · 1.07 KB

README.md

File metadata and controls

67 lines (44 loc) · 1.07 KB

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

Install

npm install sproc

Use

daemon.js

// echo daemon

var clients = 0;

module.exports = function(options, stream) {
  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 });
};

main.js

var sproc = require('sproc');

sproc({
  script: './daemon',
  port: 4499,
}, function(proc) {
  proc.stream.write('hello');
  stream.on('data', console.log); // outputs hello
});

options

  • port - port to use for listening/connecting (default: 4499)
  • keepProcessReference - do not detatch from the daemon (default: false)
  • log - a function (optional)

License

MIT