unix-socket-leader

    0.1.2 • Public • Published

    unix-socket-leader

    travis git npm

    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(name)

    Creates a new instance of unix-socket-leader.

    Events:

    • leader, emitted when this instance is elected leader
    • client, emitted when this instance is connected to a leader (even itself); the first argument is the connected socket
    • connection, 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.

    Install

    npm i unix-socket-leader

    DownloadsWeekly Downloads

    910

    Version

    0.1.2

    License

    MIT

    Last publish

    Collaborators

    • matteo.collina