1st iteration

This commit is contained in:
David Dias 2015-09-15 19:08:19 +01:00
parent a0a9ed6b57
commit 7e2e383f1b

46
src/index.js Normal file
View File

@ -0,0 +1,46 @@
var tcp = require('net')
var async = require('async')
exports = module.exports
exports.dial = function (peerInfo, callback) {
var socket
async.eachSeries(peerInfo.multiaddrs, function (multiaddr, next) {
if (!multiaddr.protoNames().indexOf('tcp')) {
return next()
}
if (socket) {
return next()
}
var tmp = tcp.connect(multiaddr.toOptions(), function connected () {
socket = tmp
next()
})
tmp.once('error', function (err) {
console.log(multiaddr.toString(), 'on',
peerInfo.id.toB58String(), 'not available', err)
next()
})
}, function done () {
if (!socket) {
return callback(new Error('Not able to open a scoket with peer - ',
peerInfo.id.toB58String()))
}
callback(null, socket)
})
}
exports.listen = function (options, callback, readyCallback) {
options.port = options.port || 4001
var listener = tcp.createServer(function (socket) {
callback(null, socket)
})
listener.listen(options.port, readyCallback)
return listener
}