https://github.com/draeder/webtorrent-beacon
Get a beacon when a webtorrent containing your string gets a new peer
https://github.com/draeder/webtorrent-beacon
Last synced: about 1 month ago
JSON representation
Get a beacon when a webtorrent containing your string gets a new peer
- Host: GitHub
- URL: https://github.com/draeder/webtorrent-beacon
- Owner: draeder
- License: mit
- Created: 2021-07-31T18:37:08.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-04T23:27:03.000Z (almost 4 years ago)
- Last Synced: 2025-03-13T02:21:52.828Z (about 2 months ago)
- Language: JavaScript
- Size: 47.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Webtorrent-beacon
Create a new torrent and receive a beacon when a new peer requests it##
Webtorrent-beacon instantly sends a beacon when a new peer requests it. It does't care whether or not the new peer has actually connected to the torrent.## Some use-cases
- Instantly count peers interested in your torrent as they arrive (or leave [not as instantly])
- Instantly send a beacon to another instance (or multiple instances) of Webtorrent-beacon that a peer is interested in the same torrent. This may be useful for decentralizing WebRTC signaling between peers that connect to different tracker servers. [Peerservers](https://github.com/draeder/peerservers) intends to use this library as the signaling method for peers connected to disparate tracker servers.If you have another use-case, please share with an issue / PR!
## Status
This software is in pre-alpha state and has not been audited for security. If you find any issues, please submit an issue / PR!## Install
```js
npm i webtorrent-beacon
```## Usage
### Example
```js
let Beacon = require('webtorrent-beacon')let filename = 'my file name.txt'
let data = 'my file data'let opts = {} // webtorrent options
let beacon = new Beacon(opts, filename, data, beacon => {
if(beacon){
console.log('Torrent has a new interested peer:', beacon) // true
}if(!beacon){
console.log('An interested peer has left')
}})
beacon.infoHash(infoHash => {
console.log(infoHash)
})beacon.magnet(magnet => {
console.log(magnet)
})```
## API
### `opts = {} // Webtorrent options`
Refer to the [webtorrent API](https://webtorrent.io/docs) for options that can be passed in.### `beacon.infoHash(callback)`
Returns the infohash of the torrent created by webtorrent-beacon
```js
beacon.infoHash(infoHash => {
console.log(infoHash)
})
```### `beacon.magnet(callback)`
Returns the magnet URI of the torrent created by webtorrent-beacon
```js
beacon.magnet(magnet => {
console.log(magnet)
})
```## Todo
- Add support for monitoring beacons on torrents not created by this library