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