Feross Aboukhadijeh
c88bbb4a62
standard
2020-10-28 18:57:47 -10:00
Feross Aboukhadijeh
eb69f8d7ab
standard
2020-10-21 13:47:38 -10:00
Diego Rodríguez Baquero
51db46f4b2
increase reconnect variance and maximum
2020-03-29 13:34:50 -05:00
Eric Guan
fc2f84ad60
Check if socket is already connected in _openSocket(). Fixes https://github.com/webtorrent/webtorrent/issues/1245 .
2019-08-14 14:20:18 -07:00
Diego Rodríguez Baquero
d410c6c088
Merge branch 'master' into modernize_lib_client
2018-11-22 11:00:48 -05:00
Diego Rodríguez Baquero
f7d3e9b7c0
Lower reconnect min and increase variance
...
This will allow servers to "breathe" when lots of peers are reconnecting.
2018-11-22 10:59:34 -05:00
Jimmy Wärting
c8ceaee306
replace self with this
2018-10-03 15:06:38 +02:00
Jimmy Wärting
386e0a5fbe
lebab lib/client
2018-10-03 14:44:11 +02:00
Jimmy Wärting
65b2bdc804
removed xtend
2018-10-02 15:09:02 +02:00
John Hiesey
7ac0e9539a
Expose WebSocketTracker socket pool
...
This is necessary for the Internet Archive superpeer implementation.
2018-08-09 15:28:13 -07:00
Feross Aboukhadijeh
63c953cbea
dry some code
2017-04-07 18:24:16 -07:00
Feross Aboukhadijeh
48d0ea42ad
Handle peer 'error' events correctly
...
Handle peer 'error' events that are fired *before* the peer is emitted
in a 'peer' event. Once the peer is emitted in a 'peer' event, then
it's the consumer's responsibility to listen for errors.
This fixes the most common error in WebTorrent Desktop according to our
telemetry.
2017-04-07 17:34:08 -07:00
Feross Aboukhadijeh
f65983e466
do not filter out extra keys from 'update' events
2017-03-10 13:38:04 -08:00
Yoann Ciabaud
8482c3af0a
Add extra data on ws annouce event
2017-03-09 11:19:46 +01:00
Feross Aboukhadijeh
1dd1cc32da
Revert "client: socketPool should not be shared across clients"
...
This reverts commit 3f3db7deb1
.
2017-02-28 15:41:52 -08:00
Feross Aboukhadijeh
3f3db7deb1
client: socketPool should not be shared across clients
...
Caught this issue because of the new eviction tests. Essentially, this
change moves the socketPool into the client instance instead of a
reused variable at the module level.
When a client sends stop (or is evicted) the server will close the
websocket connection if that client is not in any other swarms (based
on peerId). However, if we are using a single socket for multiple
clients (as was the case before this commit), then other clients will
have their sockets unintentionally closed by the server.
2017-02-08 13:20:41 -08:00
Feross Aboukhadijeh
30b6f176b1
ws client: Don't include offers with 'completed' event
...
It's not necessary to include webrtc offers because the client is not
really looking for more peers when it has just completed the torrent.
Fewer WebRTC offers = less resource usage
2017-02-02 16:59:36 -08:00
Feross Aboukhadijeh
0aadcc1cbb
Wait up to 1s for pending requests before destroy()
...
If the user calls:
client.stop()
client.destroy()
We should ensure that the final 'stopped' message reaches the tracker
server, even though the client will not get the response (because they
destroyed the client and no more events will be emitted).
If there are pending requests when destroy() is called, then a 1s timer
is set after which point all requests are forcibly cleaned up. If the
requests complete before the 1s timer fires, then cleanup happens right
away (so we're not stuck waiting for the 1s timer).
So, destroy() can happen one of three ways:
- immediately, if no pending requests exist
- after exactly 1s, if pending requests exist and they don't complete
within 1s
- less than 1s, if pending requests exist and they all complete before
the 1s timer fires
2017-01-20 18:41:28 -08:00
Feross Aboukhadijeh
b2cbfafae7
use 'once' on some event handlers
2016-09-16 07:49:29 -07:00
Feross Aboukhadijeh
a35f1f8178
replace hat with randombytes
2016-08-20 19:37:36 -07:00
Yoann Ciabaud
fa0b3e4535
Double default for webrtc trackers (now Chrome 51 is released) #152
2016-06-07 18:50:06 +02:00
Feross Aboukhadijeh
4431ae14ab
Ensure client.destroy() callback is called when websocket pool used
...
Fixes #141
2016-03-31 21:49:18 -07:00
Feross Aboukhadijeh
c92b1714db
Remove all Function.bind calls
...
For https://github.com/feross/webtorrent-desktop/issues/256
2016-03-28 23:38:23 -07:00
Feross Aboukhadijeh
721a7bea7c
make server and client always send { action: 'announce' }
2016-03-23 22:04:07 -07:00
Feross Aboukhadijeh
4159d35cfc
ws client: drop support for old tracker servers
...
Old tracker server versions don’t send data.action === ‘announce’
2016-03-23 21:26:52 -07:00
Feross Aboukhadijeh
89b9fb7f40
prevent two reconnect timers for running at same time
2016-03-18 23:14:48 -07:00
Feross Aboukhadijeh
49025c1320
reset self.peers = {} after destroy
...
Supersedes PR #135
2016-03-18 23:12:54 -07:00
Feross Aboukhadijeh
db868cac78
guard against self.socket being null
2016-03-18 23:12:28 -07:00
Feross Aboukhadijeh
51e2439333
Lower generated offer number to 5
...
Temporary mitigation for leak issue
2016-03-16 18:06:42 -07:00
Feross Aboukhadijeh
c181020937
client: Do not include WebRTC offers with 'stopped' announce event ( fix #132 )
2016-03-16 18:04:56 -07:00
Feross Aboukhadijeh
2c23ae7f00
client: websocket: Unref peer.trackerTimeout
2016-03-16 17:59:01 -07:00
Feross Aboukhadijeh
d079171044
Fixes for PR #129
2016-03-16 17:58:47 -07:00
Yoann Ciabaud
5127aad052
Make electron webrtc working in headless and stabdard fix
2016-03-16 17:33:07 -07:00
Yoann Ciabaud
d4c34c344e
Destroy peers and tracker timeouts on destroy
2016-03-16 17:33:07 -07:00
Yoann Ciabaud
3252070328
Clear reconnect timeout on destroy
2016-03-16 17:33:06 -07:00
Yoann Ciabaud
35e6eeaef2
Close the websocket only when no one is using it
2016-03-16 17:33:06 -07:00
Feross Aboukhadijeh
5d4cf75e0a
Merge pull request #123 from DiegoRBaquero/patch-1
...
Reconnect timeout improvement
2016-03-15 21:41:01 -07:00
Diego Rodríguez Baquero
050d95ac72
Variance and higher max
2016-03-16 01:14:24 -03:00
Feross Aboukhadijeh
8c01cb7268
do not throw and crash client
2016-03-15 20:59:04 -07:00
Feross Aboukhadijeh
ba4a52d2d1
Fixes for PR #125
2016-03-15 20:06:39 -07:00
Feross Aboukhadijeh
3d753ab805
Merge pull request #125 from yciabaud/ws-scrape
...
Scrape implementation for websocket. Issue #116
2016-03-15 19:39:59 -07:00
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
Diego Rodríguez Baquero
529203ea40
Max reconnect time
2016-03-11 15:26:55 -03: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
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