0.1.0 • Published 9 years ago

mqemitter-p2p v0.1.0

Weekly downloads
1
License
ISC
Repository
github
Last release
9 years ago

mqemitter-p2p

A P2P implementation of MQEmitter, based on HyperEmitter and a Merkle DAG

HyperEmitter-powered MQEmitter.

See MQEmitter for the actual API. The listen and connect function are exposed from the internal HyperEmitter.

Install

$ npm install mqemitter-p2p --save

Example

var fs = require('fs')
var path = require('path')
var schema = fs.readFileSync(path.join(__dirname, 'test.proto'))
var p2p = require('./')
var memdb = require('memdb')
var assert = require('assert')

var a = p2p({
  db: memdb(),
  schema: schema
})

var b = p2p({
  db: memdb(),
  schema: schema
})

var msg = {
  topic: 'hello',
  payload: null
}

a.listen(9001, 'localhost', function (err) {
  assert(!err)
  b.connect(9001, 'localhost', function (err) {
    assert(!err)
  })
})

a.emit(msg)
b.on('hello', function (received, cb) {
  console.log(received)
  cb()
  assert.deepEqual(received, msg, 'msg matches')
  a.close(function (err) {
    assert(!err)
    b.close(function (err) {
      assert(!err)
      console.log('closed successfully')
    })
  })
})

License

ISC