Feross Aboukhadijeh
6df64ffe06
Fixes for PR #126
2016-03-14 19:16:00 -07:00
Autarc
09e2b55e42
invoke callbacks of destroyed trackers
2016-03-14 17:13:34 +01:00
Yoann Ciabaud
39507bf8be
Scrape implementation for websocket. Issue #116
2016-03-14 00:36:51 +01:00
Yoann Ciabaud
eb3cefec35
Use type from server to filter peers to offer
2016-03-13 15:51:08 +01:00
Feross Aboukhadijeh
e3c65bc2a3
PR Feedback for #120
2016-03-11 17:21:19 -08:00
Diego Rodríguez Baquero
529203ea40
Max reconnect time
2016-03-11 15:26:55 -03:00
Yoann Ciabaud
af631d9fce
Merge remote-tracking branch 'upstream/master' into client-infos
2016-03-11 10:34:07 +01:00
Yoann Ciabaud
2f37e6c476
Adds a type param to identify the source of the peer
2016-03-11 10:09:09 +01:00
Diego Rodríguez Baquero
8e2dbdc576
Reconnect timeout increase lineally
...
Minimum set at 15 seconds, each retry adds 30 seconds.
2016-03-11 04:12:09 -03:00
Feross Aboukhadijeh
0585d8b18a
use delete obj[key]
instead of obj[key] = null
2016-03-10 21:26:28 -08:00
Diego Rodríguez Baquero
e185f321d3
Delete peer on announce stopped
2016-03-11 01:10:34 -03:00
Yoann Ciabaud
60f03b9529
Provide IP and HTTP headers in both HTTP and Websocket server
2016-03-03 11:10:54 +01:00
Feross Aboukhadijeh
a82f5c9878
websocket client: fix: emit 'update' when data.complete is 0
2016-02-29 14:48:59 -08:00
Feross Aboukhadijeh
b34fc100a1
fixes for PR #107
2016-02-29 12:34:06 -08:00
Feross Aboukhadijeh
1db2cb8736
Merge pull request #107 from yciabaud/announce-extension
...
Provide a way to give extra data on announce
2016-02-29 10:19:14 -08:00
Feross Aboukhadijeh
ad580c3d7c
fixes for simple-websocket@4
2016-02-15 19:38:50 -08:00
Feross Aboukhadijeh
1e919c44cb
changes for simple-get 2.0.0
2016-02-14 00:31:44 -08:00
Feross Aboukhadijeh
ab042bd2f6
remove old todo
2016-02-05 14:06:45 -08:00
Yoann Ciabaud
f1669a506e
Provide a way to give updated announce opts via callback on setInterval
2016-02-03 08:28:38 +01:00
Alex
8692e45215
Fix display error
2016-01-13 15:57:22 -05:00
Feross Aboukhadijeh
b5096e91c3
Support async createSwarm() and getSwarm()
...
Fix #95 .
Make server.getSwarm() and server.createSwarm() into async functions
that take a callback.
2016-01-03 19:50:23 +01:00
Feross Aboukhadijeh
8d735bf97d
more cleanup
2015-12-05 03:06:54 -08:00
Feross Aboukhadijeh
3f1c9644ec
50s offer timeout
2015-12-05 03:06:46 -08:00
Feross Aboukhadijeh
5687a72fdb
raise number of offers created to 10 again
2015-12-05 01:01:23 -08:00
Feross Aboukhadijeh
fe2ac4ac67
cleanup peers that never get an answer
...
attempt to fix https://github.com/feross/webtorrent/issues/502
2015-12-05 01:01:04 -08:00
Feross Aboukhadijeh
e6382c9af6
don't send peer to itself
2015-12-05 00:41:56 -08:00
Feross Aboukhadijeh
208ae5d911
calling tracker.setInterval() should override current interval
2015-12-04 23:59:11 -08:00
Feross Aboukhadijeh
582ac990a4
webtorrent perf: create 5 offers at a time
2015-12-04 23:38:50 -08:00
Feross Aboukhadijeh
177171b82c
expose client.peerId
and client.peerIdBuffer
2015-12-02 22:33:15 -08:00
Feross Aboukhadijeh
d344537766
expose client.infoHash and client.infoHashBuffer
2015-12-02 15:46:41 -08:00
Feross Aboukhadijeh
38a80093a1
Fix UDP scrape returning invalid info hashes ( Fix #97 )
2015-12-02 15:35:42 -08:00
Feross Aboukhadijeh
e9322a32d6
code style
2015-12-02 15:31:20 -08:00
Aram Drevekenin
ab3482fc4f
Changed infoHash to always be hex
2015-11-29 16:02:29 +02:00
Feross Aboukhadijeh
abbb076484
client: interval.unref()
2015-08-24 00:11:48 +02:00
Feross Aboukhadijeh
6ef2d98b07
client: websocket-tracker: announce on reconnect
...
when coming back from being offline, or losing the websocket
connection, announcing immediately means peers will be found faster
(for us and remote peers who may be sitting at 0 peers)
2015-07-29 03:56:22 -07:00
Feross Aboukhadijeh
4128604301
remove socket from pool on destroy
2015-07-29 03:21:31 -07:00
Feross Aboukhadijeh
f5d2810c89
Announce to websocket tracker every 30 seconds (for #338 )
2015-07-29 02:12:14 -07:00
Feross Aboukhadijeh
9db28c2fad
massive cleanup
2015-07-29 01:47:09 -07:00
Feross Aboukhadijeh
3746c05d79
restructure folders
2015-07-29 00:26:44 -07:00
Feross Aboukhadijeh
2dc56de223
rename files
2015-07-29 00:06:59 -07:00
Feross Aboukhadijeh
5aa0696a34
fix crash, oops
2015-07-27 15:46:49 -07:00
Feross Aboukhadijeh
c8fcf81908
fix for node 0.10
2015-07-27 15:28:23 -07:00
Feross Aboukhadijeh
a49a0d8d18
remove stray log
2015-07-27 15:24:34 -07:00
Feross Aboukhadijeh
c3abef72ce
tracker should not modify opts
object, it's passed to all trackers
2015-07-27 15:19:18 -07:00
Feross Aboukhadijeh
c42335af43
unref timer
2015-07-16 18:33:54 -07:00
Feross Aboukhadijeh
5b79d42dcd
client: destroy callback isn't called until after cleanup
2015-07-16 18:33:50 -07:00
Feross Aboukhadijeh
b5d8748db4
fix crash on invalid udp tracker response
2015-07-06 17:48:39 -07:00
Feross Aboukhadijeh
37f95b4b54
small cleanup
2015-07-04 17:10:41 -07:00
Feross Aboukhadijeh
96f6fce1ab
only return correct peer type from swarm
2015-06-06 13:10:49 -07:00
Feross Aboukhadijeh
da5036424b
fix exception in websocket tracker
2015-05-30 14:20:42 -07:00
Feross Aboukhadijeh
ac2c3d06d8
client: Re-use WebSocket connections
...
Use a socket pool, so tracker clients share WebSocket objects for the
same server.
In practice, WebSockets are pretty slow to establish, so this gives a
nice performance boost, and saves browser resources.
2015-05-27 13:09:15 +02:00
Feross Aboukhadijeh
3be06d6684
always produce valid urls with trailing /
...
Fixes this error:
ERROR: connection error to wss://tracker.webtorrent.io?1fe16837ed
ERROR: If you think this is a bug in webtorrent, report it!
2015-05-22 16:21:55 +02:00
Feross Aboukhadijeh
c1bbade6d7
cache infohash and peerid
2015-05-20 06:45:59 -07:00
Feross Aboukhadijeh
bb145cce14
ws client: ignore offers/answers from self
2015-05-20 06:40:25 -07:00
Feross Aboukhadijeh
d40eeccf4d
limit webrtc offers to 10
2015-05-19 04:32:17 -07:00
Feross Aboukhadijeh
02c92fd2ba
randomize the peers that are given out
2015-05-19 04:32:09 -07:00
Feross Aboukhadijeh
2505e13009
after socket destroy, ignore all future errors
2015-05-17 13:53:36 -07:00
Feross Aboukhadijeh
d78b678f5b
fix regression: double cleanup bug
2015-05-17 01:47:12 -07:00
Feross Aboukhadijeh
0482c01a47
ws client: better offline reconnect behavior
...
Fixes https://github.com/feross/webtorrent/issues/318
2015-05-17 00:07:21 -07:00
Feross Aboukhadijeh
8788d75737
udp/ws clients: add destroy functions
...
Fixes #75
2015-05-16 23:25:34 -07:00
Feross Aboukhadijeh
ee91dff19d
client: add http tracker destroy function
2015-05-16 22:55:41 -07:00
Feross Aboukhadijeh
2b48883742
ws tracker: JSON.stringify messages
2015-05-05 23:05:10 -07:00
Feross Aboukhadijeh
938c025ed9
remove wrtc
dependency
...
For #303
2015-05-03 17:21:08 -07:00
Feross Aboukhadijeh
9a6e854609
Limit number of WebRTC offers to only 5
2015-05-03 16:53:37 -07:00
Feross Aboukhadijeh
68f2317870
Revert "prevent "value out of bounds error""
...
This reverts commit 25b25f663c
.
2015-05-03 16:46:39 -07:00
Feross Aboukhadijeh
1338282cc9
prevent negative complete/incomplete numbers
...
Fixes #65
Fixes #72
2015-05-03 16:38:16 -07:00
Feross Aboukhadijeh
4c3c950056
One more fix for IPv6 UDP support
...
For #73
2015-05-03 14:20:17 -07:00
Feross Aboukhadijeh
25b25f663c
prevent "value out of bounds error"
...
For #72
2015-05-01 21:32:54 -07:00
Feross Aboukhadijeh
1cc5a511bd
udp server: support multiple info_hash scrape
...
Fixes #33
2015-05-01 17:36:07 -07:00
Feross Aboukhadijeh
d705be775e
generate 5 offers in the browser, not 50
2015-04-30 21:00:14 -07:00
Feross Aboukhadijeh
ee3ea92c47
fix webrtc support detection in browser
2015-04-23 23:27:12 -07:00
Feross Aboukhadijeh
814b167e8a
bittorrent-tracker/client should work if wrtc
fails to install
2015-04-23 22:48:39 -07:00
Feross Aboukhadijeh
e0afafc776
don't return empty wrtc object in browser
2015-04-23 21:15:40 -07:00
Feross Aboukhadijeh
f1cc540e79
Fix negative leecher count issue
...
Fixes #65
2015-04-20 20:02:05 -07:00
Feross Aboukhadijeh
a5d0975dfa
Do not crash when wrtc
dep is missing
2015-04-20 16:38:59 -07:00
Feross Aboukhadijeh
f302bee0bb
simple-websocket@2
2015-04-11 11:58:21 +12:00
Feross Aboukhadijeh
97222ed16d
typo
2015-04-01 17:36:33 +13:00
Feross Aboukhadijeh
7e7062d2ae
websocket tracker server/client: fix binary vs. hex bugs
2015-03-29 21:08:26 +13:00
Feross Aboukhadijeh
13e7ff7057
set self._opts correctly
2015-03-29 20:41:25 +13:00
Feross Aboukhadijeh
df8de6f608
client/websocket: warning on invalid info_hash
2015-03-29 20:40:21 +13:00
Feross Aboukhadijeh
b269fb9db4
fix debug statements
2015-03-29 20:39:18 +13:00
Feross Aboukhadijeh
03bed33457
add webtorrent (websocket) tracker server
...
This PR merges webtorrent-tracker into this repo. Keeping the code in
sync between the two repos was becoming burdensome. This change should
not effect performance of the server since the webtorrent tracker is
disabled by default.
To enable the webtorrent tracker (disabled by default), do:
```js
var server = new Server({ ws: true })
```
2015-03-27 16:19:06 +13:00
Feross Aboukhadijeh
1ff5769054
add support for webtorrent (websocket) trackers
2015-03-24 01:52:35 -07:00
Feross Aboukhadijeh
f575cfc3c9
major client refactor - each tracker type into its own file
...
in preparation of adding a new websocket tracker type, for webtorrent
2015-03-24 01:01:49 -07:00
Feross Aboukhadijeh
57cef88169
style: always use braces except for single-line
2015-03-06 18:12:59 -08:00
Astro
b33531d835
server: allow onHttpRequest() with options={ action: 'announce' } for custom routing
...
For GH issue #58
2015-02-04 20:35:52 +01:00
Feross Aboukhadijeh
6ac9ae6a6e
perf: don't dynamically add new properties to peer objects
2015-02-02 15:20:15 -08:00
Feross Aboukhadijeh
82e6792a6b
BREAKING CHANGES
...
Breaking changes:
- 'listening' event no longer emits with `port` param
- `server.port` property removed (instead, use
`server.http.address().port`)
Added features:
- expose http server as `server.http`
- expose udp server as `server.udp`
- client.destroy() - ungracefully leave the swarm
- server: added `filter` option to black/whitelist torrents
Bugfixes:
- client considers udp tracker errors to be warnings
- emit 'start', 'stop', 'update', etc. AFTER response sent
- fix udp error response action and message being `undefined`
Internal:
- remove `portfinder` dep
- add complete test for `filter` functionality
2015-01-29 14:59:08 -08:00
Feross Aboukhadijeh
ebb86f728f
JavaScript Standard Style
...
https://github.com/feross/standard
2015-01-26 18:16:01 -08:00
Feross Aboukhadijeh
69211515c2
encode special characters @*/+ in http tracker urls
...
Fixes https://github.com/feross/webtorrent/issues/196
2014-12-17 21:18:46 -08:00
Astro
d79bf92db0
server: ipv6 support
2014-12-13 00:12:47 +01:00
Feross Aboukhadijeh
79068a49cf
Use hex info_hash and peer_id throughout
2014-12-12 02:02:11 -08:00
Feross Aboukhadijeh
c75ca05479
swarm.announce() should always call callback
...
It’s important that calls to swarm.announce() always calls the callback
that it’s passed otherwise http announce/scrape requests
will hang (because res.end() is never called).
Also, since this swarm implementation is in-memory, we can get rid of
the callbacks to internal functions.
Lastly, fixed references to non-existent start() function.
2014-12-11 13:43:11 -08:00
Feross Aboukhadijeh
edb5c6e854
code style
2014-12-11 12:53:39 -08:00
Astro
c97e4236f4
server parseHttpRequest(): simplify info_hash checking
2014-12-11 17:07:37 +01:00
Astro
e64fecc063
parseUdpRequest(): throw on invalid packet
2014-12-11 16:19:08 +01:00
Astro
7a417a591d
parseUdpRequest(): fix params.ip
2014-12-11 16:11:12 +01:00
Astro
e234f14d56
server swarm: split out announce events
2014-12-10 17:01:34 +01:00
Astro
8439300df9
server: unify compact serialization
2014-12-10 16:51:35 +01:00
Astro
b72960dee3
server: split out Swarm
2014-12-10 16:47:41 +01:00