discovery-channel

WebJar for discovery-channel

License

License

ISC
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

discovery-channel
Last Version

Last Version

5.5.1
Release Date

Release Date

Type

Type

jar
Description

Description

discovery-channel
WebJar for discovery-channel
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/maxogden/discovery-channel

Download discovery-channel

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/discovery-channel/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>discovery-channel</artifactId>
    <version>5.5.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/discovery-channel/
implementation 'org.webjars.npm:discovery-channel:5.5.1'
// https://jarcasting.com/artifacts/org.webjars.npm/discovery-channel/
implementation ("org.webjars.npm:discovery-channel:5.5.1")
'org.webjars.npm:discovery-channel:jar:5.5.1'
<dependency org="org.webjars.npm" name="discovery-channel" rev="5.5.1">
  <artifact name="discovery-channel" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='discovery-channel', version='5.5.1')
)
libraryDependencies += "org.webjars.npm" % "discovery-channel" % "5.5.1"
[org.webjars.npm/discovery-channel "5.5.1"]

Dependencies

compile (6)

Group / Artifact Type Version
org.webjars.npm : dns-discovery jar [6.0.1,7)
org.webjars.npm : thunky jar [0.1.0,0.2)
org.webjars.npm : debug jar [2.6.9,3)
org.webjars.npm : pretty-hash jar [1.0.1,2)
org.webjars.npm : buffer-from jar [1.0.0,2)
org.webjars.npm : bittorrent-dht jar [7.10.0,8)

Project Modules

There are no modules declared in this project.

discovery-channel

Search for a key across multiple discovery networks and find peers who answer.

Currently searches across and advertises on the Bittorrent DHT, centralized DNS servers and Multicast DNS simultaneously.

Uses the bittorrent-dht and dns-discovery modules.

Also check out discovery-swarm which adds connection management on top of this module.

travis

Usage

var DC = require('discovery-channel')

Returns a constructor

var channel = DC(<opts>)

Returns a new instance. opts is optional and can have the following properties:

  • dns - default undefined, if false will disable dns discovery, any other value type will be passed to the dns-discovery constructor
  • dht - default undefined, if false will disable dht discovery, any other value type will be passed to the bittorrent-dht constructor
  • hash - default sha1. provide a custom hash function to hash ids before they are stored in the dht / on dns servers.

By default hashes are re-announced around every 10 min on the dht and 1 min using dns. Set dht.interval or dns.interval to change these.

channel.join(id, [port], [cb])

Perform a lookup across all networks for id. id can be a buffer or a string. Specify port if you want to announce that you share id as well.

If you specify cb, it will be called when the first round of discovery has completed. But only on the first round.

channel.leave(id, [port])

Stop looking for id. id can be a buffer or a string. Specify port to stop announcing that you share id as well.

channel.update()

Force announce / lookup all joined hashes

var list = channel.list()

List all the channels you have joined. The returned array items look like this

{
  id: <Buffer>,
  port: <port you are announcing>
}

channel.on('peer', id, peer, type)

Emitted when a peer answers your query.

  • id is the id (as a buffer) this peer was discovered for
  • peer is the peer that was discovered {port: port, host: host}
  • type is the network type (one of ['dht', 'dns'])

channel.destroy(cb)

Stops all lookups and advertisements and call cb when done.

channel.on('close')

Emitted when the channel is destroyed

Versions

Version
5.5.1