Juliusz Chroboczek
7151fad149
Simplify the initial connection protocol.
...
The ServerConnection.connect method is no longer async,
we rely on the onconnected callback only. The onconnected
callback is now only called after the initial handshake
completes. There is a new onerror callback.
2024-06-10 21:12:47 +02:00
Juliusz Chroboczek
0fc9136774
Allow HTML elements in addToChatbox.
2023-12-08 23:41:51 +01:00
Juliusz Chroboczek
cc2ed14484
Reset c.sc after calling onclose.
...
The onclose callback might want to access c.sc.
2023-08-29 01:42:48 +02:00
Juliusz Chroboczek
892a4b8401
Fix parsing of server version.
2023-08-28 23:07:01 +02:00
Jackson Vieira
1ad91adf89
Fix audio activity detection for downstreams
...
Replaced the non-existent `track` property in `RTCStatsType`
with the valid `inbound-rtp` property.
2023-08-28 22:47:46 +02:00
Juliusz Chroboczek
a701d8c6fa
Remove client-side support for protocol version 1.
2023-07-16 15:54:58 +02:00
Juliusz Chroboczek
e786e1bd11
Pass file transfer cancel message to callback.
2023-04-28 16:57:00 +02:00
Juliusz Chroboczek
ac1dc77b30
Reconnect when server complains about a username.
...
If a token does not specify a username, the server will request
one by failing the join message. Disconnect from the WebSocket
in that case, and display the login dialog with the password
field invisible.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
8c1510023f
Implement user interface for token management.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
59ff25310d
Don't set group if joining failed.
...
We used to set sc.group even if joining failed, which would cause
us to spuriously call the onJoined callback when we disconnected.
2023-04-03 22:57:36 +02:00
Juliusz Chroboczek
58ef60f974
Minor tweaks to file transfer.
...
Avoid copying data when sending, improve error handling.
2023-01-22 22:24:51 +01:00
Juliusz Chroboczek
fae045fb61
Client-side support for protocol version 2.
...
This does not yet support the new 'need-username' error.
2022-12-16 18:38:30 +01:00
Juliusz Chroboczek
397892d906
Add forgotten time field to message typedef.
2022-12-16 17:56:41 +01:00
Juliusz Chroboczek
56baddc948
Make groupAction take an arbitrary parameter.
2022-10-23 16:04:10 +02:00
Juliusz Chroboczek
533e4b9b32
Version the protocol.
...
The handshake message now contains a list of supported protocol
versions. Version mismatch is currently a warning, but it will be a
hard error in the future.
2022-09-02 14:30:51 +02:00
Jeroen van Veen
a21134d310
Fix usage of serverConnection in protocol.js
...
serverConnection is the global value in galene.js.
2022-08-29 20:15:19 +02:00
Juliusz Chroboczek
c5e5455e47
Document file transfer javascript.
2022-08-04 19:14:35 +02:00
Juliusz Chroboczek
b821cd71a9
Check MIME type in auth server response.
2022-08-03 15:00:50 +02:00
Juliusz Chroboczek
d69c517137
Allow auth server to fallback to password auth.
...
The authorisation server can now reply with 204 (no content)
in order to request that the client should continue with password
authentication.
2022-08-02 18:12:17 +02:00
Juliusz Chroboczek
3bdd82f06d
Rework file transfer.
...
Split into the protocol (in protocol.js) and the user interface
(in galene.js). Make the state automaton explicit, and improve
error-handling. The new protocol is incompatible with the old one.
2022-07-25 18:54:52 +02:00
Juliusz Chroboczek
eb21c1ab20
Maintain stream information for oneself.
...
We used to maintain stream information for all users except oneself.
2022-03-25 18:21:03 +01:00
Juliusz Chroboczek
e303992e45
Call onuser when deleting stream.
2022-03-25 17:04:31 +01:00
Juliusz Chroboczek
55ae4a684b
Remove parameter from the onpeerconnection callback.
...
The distinction is not likely to be useful, and it doesn't make
sense in all cases.
2022-03-23 00:11:12 +01:00
Juliusz Chroboczek
8d4bafe05c
Tweak documentation of protocol.js.
2022-03-23 00:08:16 +01:00
Juliusz Chroboczek
34b21a2598
Add preference forceRelay.
...
This may be useful to get around network blocks in some cases.
2022-03-22 18:23:16 +01:00
Juliusz Chroboczek
d798cfec75
Fix simulcast statistics display for Firefox.
...
Firefox doesn't include the rid in the statistics result.
Use the SSID instead.
2022-03-20 22:34:39 +01:00
Juliusz Chroboczek
a86fb08f6c
Replace ClientPermissions with a list of strings.
...
Now that we support external auth, the permissions list is
open-ended. Make it a list for simplicity.
2022-02-19 23:44:57 +01:00
Juliusz Chroboczek
03811db37d
Implement token authentication.
2022-02-18 13:35:17 +01:00
Juliusz Chroboczek
14ca47651b
Fix data parameter of ServerConnection.join.
...
This was broken when we renamed status to data. Thanks to
Sylvie Tissot.
2022-02-05 13:48:05 +01:00
Juliusz Chroboczek
24187430e8
Rename client status to data, add group data.
...
We now distinguish between status, which is maintained by the server,
and data, which is provided by the client. In addition to client data,
we now support group data.
2022-01-29 23:28:08 +01:00
Juliusz Chroboczek
710cc3cc14
Add ability to set initial user status.
...
Setting the status after joining (using the "setstatus" action)
may cause multiple "user" messages to be sent to clients. Add
the ability to set the initial status at join time.
2022-01-28 22:21:19 +01:00
Juliusz Chroboczek
29b4734bc4
Adapt typing to TypeScript 4.5.4.
2022-01-25 01:22:59 +01:00
Juliusz Chroboczek
f72061996c
Fix error handling in gotClose.
2021-11-27 21:30:07 +01:00
Juliusz Chroboczek
09c5ba0d06
Protect against tracks without a stream.
2021-09-16 17:19:19 +02:00
Juliusz Chroboczek
b527c8757a
Add chathistory message.
2021-07-31 14:42:26 +02:00
Juliusz Chroboczek
a25d46314a
Fix documentation of onerror callback.
2021-07-30 17:40:15 +02:00
Juliusz Chroboczek
b9c1968b48
Treat closing unknown streams as a warning.
2021-07-16 23:10:13 +02:00
Juliusz Chroboczek
52a26327d7
Implement group status.
...
We now inform clients of the status of a group (locked, etc.). Also
cleans up the handling of administrative messages, which solves the
issue of receiving "user" before "joined".
2021-07-16 19:51:54 +02:00
Juliusz Chroboczek
2da8faa8cf
Implement per-stream requests.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
c18ec32c85
Protect against closed streams in recomputeUserStreams.
2021-05-13 04:09:56 +02:00
Juliusz Chroboczek
795a40ceaf
Simulcast.
2021-05-08 21:12:29 +02:00
Juliusz Chroboczek
acca3f9bb3
Maintain kinds of tracks in user data structure.
...
Needed to show in the user list whether a user is publishing a stream.
2021-04-29 21:10:04 +02:00
Juliusz Chroboczek
be73380f9f
Label streams, not tracks.
...
We used to label tracks individually, in a view to using the labelling
for simulcast. Since then, the WebRTC community has converged on a
different strategy, where multiple tracks share a single mid and
are labelled with the rid extension.
We now label whole streams, which is simpler, and use the track's
kind (and, in the future, the rid) to disambiguate. This changes the
protocol in two ways:
* in offers, the "labels" dictionary is replaced by a single "label"
field; and
* the syntax of the "request" message has changed.
2021-04-29 18:28:16 +02:00
Juliusz Chroboczek
3ba2394be7
Implement user statuses.
...
The server now maintains a set of statuses for each user that are not
interpreted by the server but communicated to the other members of the
group using 'user' messages.
2021-04-28 17:01:05 +02:00
Juliusz Chroboczek
f0a39fca48
Send user permissions to client.
...
We now maintain the user list in the serverConnection.
2021-04-28 00:07:19 +02:00
Juliusz Chroboczek
b7f39d3290
Remove last traces of onabort callback.
...
Everything now goes through onclose, both for up and down streams.
2021-04-27 17:10:34 +02:00
Alexandre Iooss
8da55c6e6c
Remove async from ServerConnection.gotRenegotiate
2021-04-27 11:11:17 +02:00
Alexandre Iooss
4db8279016
Fix serverConnection not defined in ServerConnection.findByLocalId
2021-04-27 11:11:17 +02:00
Juliusz Chroboczek
016c321484
Fix typing of userMessage value.
2021-02-26 16:22:55 +01:00
Juliusz Chroboczek
e04193f78c
Display user message when browser doesn't do WebRTC.
...
Thanks to mscherer for the report.
2021-02-14 18:06:50 +01:00