unix-socket-leader
v0.1.2
Published
Elect a leader using unix sockets
Downloads
7,860
Readme
unix-socket-leader
Elect a leader using unix sockets, inspired by level-party and a late night conversation with @mafitonsh at nodejsconf.it.
Install
To install unix-socket-leader, simply use npm:
npm install unix-socket-leader --save
Example
The example below can be found here and ran using node example.js
. It
demonstrates how to use unix-socket-leader to build a simple chat room.
'use strict'
var leader = require('unix-socket-leader')('chat')
var eos = require('end-of-stream')
var sockets = []
var popts = { end: false }
leader.on('leader', function () {
console.log('!! I am the the leader now', process.pid)
})
leader.on('connection', function (sock) {
sock.write('!! connected to ' + process.pid)
sock.write('\n')
sockets.forEach(function (other) {
other.pipe(sock, popts).pipe(other, popts)
})
sockets.push(sock)
eos(sock, function () {
sockets.splice(sockets.indexOf(sock), 1)
})
})
leader.on('client', function (sock) {
process.stdout.pipe(sock, popts).pipe(process.stdout, popts)
})
API
- leader()
- instance.close()
leader(name)
Creates a new instance of unix-socket-leader.
Events:
leader
, emitted when this instance is elected leaderclient
, emitted when this instance is connected to a leader (even itself); the first argument is the connected socketconnection
, emitted when there is a new incoming connection, and this instance is the leader; the first argument is the connected socket
instance.close([cb])
Closes the instance, severing all current connections.
License
Copyright Matteo Collina 2015, Licensed under MIT.