Bittorrent Udp Tracker
udp tracker implementation for bittorrent.
Features
Installation
npm i bittorrent-udp-tracker --save
Test
npm test
Usage
var UdpTracker = var udpTracker = '01234567890123456789' '12345678901234567890' announceUrl 'port': 1234udpTracker udpTracker udpTracker
update
event will return json stringified object. It will have following format
{
leechers: 12,
seeds: 12,
peers: ['10.12.12.12.:1234', '109.12.90.15.:1234']
}
error
event will return error message.
API
-
#### new UdpTracker(peerId, infoHash, opts)
It will return instance of UdpTracker.It is also instance of
EventEmitter
.var udpTracker = '01234567890123456789' '12345678901234567890' announceUrl 'port': 1234- peerId: unique Id for peer (20 bytes)
- infoHash: infoHash for torrent (20 bytes)
- opts:
{ port: (16 bytes), _timeout: timeout for announce try in miliseconds }
-
#### udpTracker.announce(event, opts)
announce event to tracker
event
: event type to announce
none = 0
completed = 1
started = 2
stopped = 3
-
opts
: announce options to send following are consider,downloaded
: 8 bytes longleft
: 8 bytes longuploaded
: 8 byte long
- #### udpTracker.destroy()
stop sending announce
request to trackers.
TODO
following things need to implement.
- udp tracker timeout
- announce interval handling
- implement scraping
- support IP6
- implement extensions
- authentication
- request string
Implementation Details
- #### Time outs
bittorrent udp tracker timeout specification is implemented
- #### Announce Interval
announce response sends interval (in second) which says do not send another announce request before interval. So even you called announce
we do not send announce request immediately instead we wait till interval time is over.
After Interval time is over we send announce request with most recent announce request options.
- #### Stoping Tracker
As announce return interval to make new announce request.We keep making announce request. To stop tracker you have to call explicitly destory()
api
Inspiration
This module Inspiration is taken from feross's bittorrent-tracker modules's file. udp-tracker.js.
Contributions
please create issue if you are having problem with module.
License
MIT