1
Fork 0
Commit Graph

86 Commits

Author SHA1 Message Date
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 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 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 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 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 426c1e06d8 Remove half-baked compatibility code for old browsers. 2020-06-19 11:51:46 +02:00
Juliusz Chroboczek 1e977213d1 Check media status in setMediaStatus. 2020-06-12 21:28:35 +02:00
Juliusz Chroboczek a8ca2e8559 Make stats reporting independent of the number of tracks. 2020-06-12 15:42:44 +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 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 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 f70ff2424e Detect sends on closed websocket explicitly.
It turns out that send on a closed websocket doesn't throw, so handle
this case explicitly.  Thanks to Giuseppe Castagna for noticing.
2020-06-09 01:49:55 +02:00
Juliusz Chroboczek 8830870ded Implement downloading of recorded videos. 2020-06-01 00:02:17 +02:00
Juliusz Chroboczek 50ad751e7d Protect against stream being null in connection.close.
This may happen if we close a connection before getting any tracks.
2020-05-30 13:15:12 +02:00
Juliusz Chroboczek 0a2c4eb381 Implement recording. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek 1365683ad6 Fix selection of alternate media devices.
Thanks to Giuseppe Castagna for noticing.
2020-05-29 15:56:06 +02:00
Juliusz Chroboczek eb6ab8aa1a Implement workaround for older browsers that don't have transceivers. 2020-05-24 13:39:06 +02:00
Juliusz Chroboczek 9575b80893 Use mids instead of track ids for indexing labels.
It turns out that track ids are not necessarily the same on the local and
remote sides.  Thanks to Ines Klimann for noticing the issue.
2020-05-21 22:40:11 +02:00
Juliusz Chroboczek cbff5067b2 Implement sharing of multiple application windows at a time. 2020-05-21 22:40:11 +02:00
Juliusz Chroboczek 12858e1f36 Implement commands /lock and /unlock. 2020-05-18 15:24:04 +02:00
Juliusz Chroboczek 037f002a29 Make the requested field of client requests into a dictionary. 2020-05-18 00:56:29 +02:00
Juliusz Chroboczek b26a8cad78 Label tracks explicitly.
For now, this is only used to request screen sharing as opposed to normal
videos.  In the future, it will be used for simulcasting.
2020-05-17 23:28:19 +02:00
Antonin Décimo c52fa75686 Fix undefined disconnectbutton variable.
Commit 8257a7f "Remove dead variables." was wrong in that it deleted
the 'diconnect' [sic] variable definition, and left the
'disconnectbutton' variable undefined.
2020-05-14 12:55:41 +02:00
Juliusz Chroboczek 6efd6007f1 Fix bitrate computation.
I'm an idiot.
2020-05-12 19:20:39 +02:00
Juliusz Chroboczek 4a476abe11 Add minimum size for list of users. 2020-05-11 20:38:47 +02:00
Juliusz Chroboczek fbf26be8c6 Instantiate box explicitly.
Thanks to Antonin Décimo.
2020-05-11 02:58:48 +02:00
Juliusz Chroboczek 8257a7ff19 Remove dead variables. 2020-05-11 02:51:44 +02:00
Antonin Décimo 31a5a8e8f1 Fix escaping of \ in character class.
> Rejeté. Ce n'est pas un escape.

D’après mes tests, c’est considéré comme un escape. Doubler le
caractère serait suffisant.

    const url = 'https://example\\.com';
    const urlRegexp1 = /https?:\/\/[-a-zA-Z0-9@:%/._\+~#=?]+[-a-zA-Z0-9@:%/_\+~#=]/g;
    const urlRegexp2 = /https?:\/\/[-a-zA-Z0-9@:%/._\\+~#=?]+[-a-zA-Z0-9@:%/_\\+~#=]/g;
    console.log(url.length); // 20
    console.log(urlRegexp1.exec(url)); // ["https://example"]
    console.log(urlRegexp2.exec(url)); // ["https://example\.com"]
2020-05-11 00:33:58 +02:00
Antonin Décimo 33610e89f8 Introduce a lexical block in case. 2020-05-10 22:42:48 +02:00