mirror of
https://github.com/fluencelabs/js-libp2p-tcp
synced 2025-04-25 17:22:30 +00:00
1st iteration
This commit is contained in:
parent
a0a9ed6b57
commit
7e2e383f1b
46
src/index.js
Normal file
46
src/index.js
Normal 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
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user