module.exports = function (key, opts) {
  if (!opts) opts = {}

  var stream = createStream(key, opts)

  var swarm
  if (!opts.static || !stream.write) {
    swarm = createSwarm(stream.feed, { port: null })
    patch(stream, swarm)

    if (opts.exit) {
      stream.on('end', function () {
        swarm.close()
      })
      stream.on('finish', function () {
        swarm.close()
      })
    }
  } else {
    stream.on('finish', function () {
      if (!opts.exit) {
        swarm = createSwarm(stream.feed, { port: null })
        patch(stream, swarm)
      }
    })
  }

  return stream
}
Example #2
0
      portfinder.getPort((err, port) => {
        if (err) throw err

        self.metadataswarm = discover(self.metadata, {
          tcp: true,
          utp: true,
          port: port,
          live: true,
          upload: true,
          download: true,
          dht: false
        })
      })
Example #3
0
      portfinder.getPort((err, port) => {
        if (err) throw err

        self.articlesswarm = discover(self.articles, {
          tcp: true,
          utp: true,
          port: port,
          live: true,
          upload: true,
          download: true,
          dht: false
        })

        self.articlesswarm.on('connection', (peer, type) => {
          self.stats.set('peers', self.articlesswarm.connections.length).write()
          peer.on('close', () => {
            self.stats.set('peers', self.articlesswarm.connections.length).write()
          })
        })
      })
 stream.on('finish', function () {
   if (!opts.exit) {
     swarm = createSwarm(stream.feed, { port: null })
     patch(stream, swarm)
   }
 })