1
Fork 0
Commit Graph

354 Commits

Author SHA1 Message Date
Juliusz Chroboczek e0a81e7f03 Add ability to limit outgoing throughput.
This will hopefully become unnecessary once we have better congestion
control.
2020-08-26 19:16:01 +02:00
Juliusz Chroboczek a4b528e1e7 Implement onnegotiationcompleted callback. 2020-08-26 18:30:29 +02:00
Juliusz Chroboczek 6dc1d72438 Type global variables in sfu.js. 2020-08-24 22:37:48 +02:00
Juliusz Chroboczek fba0dded84 Type global variables in sfu.js. 2020-08-24 22:31:22 +02:00
Juliusz Chroboczek e4aad04f28 Fix typo in onended callback of screen share. 2020-08-24 22:24:33 +02:00
Juliusz Chroboczek a2ab8c3686 Remove up media when closing the socket. 2020-08-23 19:07:52 +02:00
Juliusz Chroboczek 8fbd16cc8c Minor tweaks to error handling. 2020-08-19 14:39:40 +02:00
Juliusz Chroboczek 74cab72154 Update pion/webrtc to v3 beta.2. 2020-08-15 23:25:46 +02:00
Juliusz Chroboczek e0c10acdf0 Improve README.FRONTEND. 2020-08-14 15:29:11 +02:00
Juliusz Chroboczek 33bfb433f1 Mark async functions explicitly in protocol.js.
JSDoc doesn't recognise them otherwise.
2020-08-14 14:44:23 +02:00
Juliusz Chroboczek 7848822469 Minor type tightenings in protocol.js. 2020-08-14 14:36:29 +02:00
Juliusz Chroboczek 668fae29ef Add some more typing assertions to sfu.js. 2020-08-13 20:55:13 +02:00
Juliusz Chroboczek 0067edc6eb Fix some more Javascript typos.
Thanks to Rémi Nollet and Léo Stefanesco.
2020-08-13 20:54:37 +02:00
Juliusz Chroboczek fc3ee84243 Fix typo in newUpStream. 2020-08-13 20:16:52 +02:00
Juliusz Chroboczek 0102bdc128 Fix typo in gotAbort. 2020-08-13 20:11:21 +02:00
Juliusz Chroboczek 04b0951530 Fix fetching of ICE servers. 2020-08-13 15:45:19 +02:00
Juliusz Chroboczek 240b05a660 Fix typo in renegotiation. 2020-08-13 13:48:17 +02:00
Juliusz Chroboczek 9e8a77007b Document the protocol interface. 2020-08-13 12:21:30 +02:00
Juliusz Chroboczek 3e0bb08955 Split out the javascript protocol interface. 2020-08-13 12:21:29 +02:00
Juliusz Chroboczek ec742eacdb Fix typo in renegotiation. 2020-08-13 12:16:05 +02:00
Juliusz Chroboczek 52c4f1a399 Restructure offers. 2020-08-12 13:56:35 +02:00
Juliusz Chroboczek bc7bd36ba2 Restructure user notifications. 2020-08-12 13:51:31 +02:00
Juliusz Chroboczek b6adc0b9a8 Rename Connection to Stream in the JS code. 2020-08-12 12:50:28 +02:00
Juliusz Chroboczek 675035ab29 Restructure group and client management messages. 2020-08-12 12:40:40 +02:00
Juliusz Chroboczek 88d2a96819 Restructure error and chat messages. 2020-08-12 12:17:56 +02:00
Juliusz Chroboczek 7b51296262 Split handshake into login/join.
For now, join must follow login, but it will make it easier to extend
the protocol for joining multiple groups (think federation).
2020-08-12 11:50:30 +02:00
Juliusz Chroboczek 6bde5f986a Store password in client structure.
No need to carry password around.
2020-08-12 11:49:23 +02:00
Juliusz Chroboczek 6a37033ca8 Allow both sides to initiate renegotiation.
More reliable reaction to network failures when they are detected
by just one side.
2020-08-11 15:49:33 +02:00
Juliusz Chroboczek 7aab79c4c6 Have chat messages go through the server even when sent to oneself. 2020-08-07 11:33:59 +02:00
Juliusz Chroboczek 23c4aea58f Implement renegotiation in the up direction. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek 9506615272 Restart ICE instead of restarting down connections. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek e724194ef6 Upgrade to pion/webrtc v3. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek 8a4d315c51 Move ice-servers.json under dataDir.
This makes it easier to deploy by putting all user-serviceable files
under data/.
2020-08-07 11:14:34 +02:00
Juliusz Chroboczek 4e594465cc Remove dead code. 2020-08-04 20:52:35 +02:00
Juliusz Chroboczek e9559d9a10 Remove unused field. 2020-08-04 20:51:07 +02:00
Juliusz Chroboczek 426c1e06d8 Remove half-baked compatibility code for old browsers. 2020-06-19 11:51:46 +02:00
Juliusz Chroboczek 9560779eb4 Move client interface to its own file. 2020-06-19 11:36:37 +02:00
Juliusz Chroboczek 1e977213d1 Check media status in setMediaStatus. 2020-06-12 21:28:35 +02:00
Juliusz Chroboczek a4d0741704 Perform congestion control at the connection level.
REMB applies to the whole transport, not to individual tracks.
2020-06-12 20:17:46 +02:00
Juliusz Chroboczek 903e499dd6 Don't reduce video rate in large groups. 2020-06-12 17:27:38 +02:00
Juliusz Chroboczek a8ca2e8559 Make stats reporting independent of the number of tracks. 2020-06-12 15:42:44 +02:00
Juliusz Chroboczek 23cceba7ba Restart downstream connections on ICE failure. 2020-06-11 20:22:28 +02:00
Juliusz Chroboczek dbd87895ba Add visual feedback for connection status. 2020-06-11 19:47:26 +02:00
Juliusz Chroboczek 4b32c55a57 Restart ICE in client on up connection failures. 2020-06-11 19:20:11 +02:00
Juliusz Chroboczek 9c25696d01 Update dependencies. 2020-06-11 13:51:54 +02:00
Juliusz Chroboczek e175ef0e49 Replace changed connections.
We used to destroy and recreate connections, we now replace them atomically.
2020-06-10 20:25:25 +02:00
Juliusz Chroboczek 448bb0374d Use pushConn to delete connections.
The previous mechanism (going through up.local) was racy and complicated.
2020-06-10 19:50:18 +02:00
Juliusz Chroboczek d3655b8955 Handle client-side errors during negotiation. 2020-06-10 14:38:00 +02:00
Juliusz Chroboczek 0308719719 Implement local mute. 2020-06-09 18:10:11 +02:00
Juliusz Chroboczek 94c42ea784 Be more aggressive about growing the packet cache.
Also add a test.
2020-06-09 17:17:21 +02:00