Skip to content

Nicolab/node-ipc-events

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPC event emitter

Actual version published on NPM npm module downloads per month

Minimal and fast event emitter that communicate with other process through IPC.

Getting started

Install

npm install ipc-events --save

Usage

var spawn = require('child_process').spawn;
var Ipc   = require('ipc-events');

var a = new Ipc(process);
var b = new Ipc(spawn(/* some command */, {
  stdio: [null, null, null, 'ipc']
}));

a.on('say-hello', function(data) {
  console.log(data.hello); // Hello from "b"!
});

b.on('say-hello', function(data) {
  console.log(data.hello); // Hello from "a"!
});

a.send('say-hello', {
  hello: 'Hello from "a"!'
});

b.send('say-hello', {
  hello: 'Hello from "b"!'
});

Listen `once'

function myCallback(data) {
  console.log(data.hello); // Hello from "a"!
}

// Add listener, defined to be triggered "once"
b.once('say-hello', myCallback);

// myCallback() is invoked and the listener is removed
a.send('say-hello', {
  hello: 'Hello from "a"!'
});

// myCallback() is not called because it is no longer listening on this event
a.send('say-hello', {
  hello: 'Hello from "a"!'
});

Get all listeners of an event

console.log(a.listeners('say-hello'));

Remove a listener

function myCallback(data) {
  // some code ...
}

// add
a.on('say-hello', myCallback);

// remove
a.removeListener('say-hello', myCallback);

Unit tests

ipc-events is unit tested with Unit.js

Run the tests

cd node_modules/ipc-events

npm test

LICENSE

MIT (c) 2014, Nicolas Tallefourtane.

Author

Nicolas Tallefourtane - Nicolab.net
Nicolas Talle
Make a donation via Paypal

About

Inter process (IPC) event emitter

Resources

License

Stars

Watchers

Forks

Packages

No packages published