@rapidmx/meet-plugin 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/meet/_CallControls.tsx +18 -3
- package/apps/meet/_CallView.tsx +165 -81
- package/apps/meet/_ParticipantsDrawer.tsx +109 -55
- package/apps/shared/webrtc/MeshConnectionManager.ts +26 -0
- package/apps/shared/webrtc/types.ts +23 -12
- package/dist/apps/meet/_CallControls.d.ts +14 -2
- package/dist/apps/meet/_CallControls.js +12 -4
- package/dist/apps/meet/_CallView.d.ts +17 -0
- package/dist/apps/meet/_CallView.js +64 -4
- package/dist/apps/meet/_ParticipantsDrawer.d.ts +21 -3
- package/dist/apps/meet/_ParticipantsDrawer.js +14 -7
- package/dist/apps/shared/webrtc/MeshConnectionManager.d.ts +19 -0
- package/dist/apps/shared/webrtc/MeshConnectionManager.js +25 -0
- package/dist/apps/shared/webrtc/types.d.ts +25 -11
- package/package.json +1 -1
|
@@ -21,21 +21,22 @@ export declare const REACTION_EMOJIS: readonly ["👍", "👏", "❤️", "🎉"
|
|
|
21
21
|
* literal so a listener on the meeting's channel (which will also see other frame shapes if this server ever
|
|
22
22
|
* grows other push consumers) can cheaply recognize and skip anything that isn't one of these.
|
|
23
23
|
*
|
|
24
|
-
* `hello`/`bye`/`presenter-claim`/`presenter-release`/`state`/`reaction` are broadcast (`to` left
|
|
25
|
-
* participant is relevant); `offer`/`answer`/`ice-candidate`/`mute-request`/`kicked` are
|
|
26
|
-
* intended peer's uid) - a recipient that isn't `to` (when set) ignores the message,
|
|
27
|
-
* every message out to every subscriber, sender included.
|
|
24
|
+
* `hello`/`bye`/`presenter-claim`/`presenter-release`/`state`/`reaction`/`talking-stick` are broadcast (`to` left
|
|
25
|
+
* unset - every participant is relevant); `offer`/`answer`/`ice-candidate`/`mute-request`/`kicked` are
|
|
26
|
+
* point-to-point (`to` is the intended peer's uid) - a recipient that isn't `to` (when set) ignores the message,
|
|
27
|
+
* since a channel's pub/sub fans every message out to every subscriber, sender included.
|
|
28
28
|
*
|
|
29
|
-
* `mute-request`/`kicked` are host moderation signals (see `MeshConnectionManager`'s doc comment) -
|
|
30
|
-
* cooperative, like every other message here: the recipient's own client decides whether to honor one, and
|
|
31
|
-
* on the wire distinguishes a genuine host's message from any other participant's, since this client
|
|
32
|
-
* no host identity of its own to check against server-side. `kicked` is paired with the sender also
|
|
33
|
-
* recipient's server-side channel grant (`BaseVideoMeetingRoute.revokeChannelGrant()`), which is
|
|
34
|
-
* not depend on the recipient's client cooperating
|
|
29
|
+
* `mute-request`/`kicked`/`talking-stick` are host moderation signals (see `MeshConnectionManager`'s doc comment) -
|
|
30
|
+
* purely cooperative, like every other message here: the recipient's own client decides whether to honor one, and
|
|
31
|
+
* nothing on the wire distinguishes a genuine host's message from any other participant's, since this client
|
|
32
|
+
* protocol has no host identity of its own to check against server-side. `kicked` is paired with the sender also
|
|
33
|
+
* revoking the recipient's server-side channel grant (`BaseVideoMeetingRoute.revokeChannelGrant()`), which is
|
|
34
|
+
* enforced and does not depend on the recipient's client cooperating; `talking-stick` has no server-side
|
|
35
|
+
* counterpart at all (see this module's doc comment on why it is purely an in-call runtime signal).
|
|
35
36
|
*/
|
|
36
37
|
export interface SignalMessage {
|
|
37
38
|
type: "video-meeting-signal";
|
|
38
|
-
kind: "hello" | "bye" | "offer" | "answer" | "ice-candidate" | "presenter-claim" | "presenter-release" | "state" | "reaction" | "relay-fallback" | "mute-request" | "kicked";
|
|
39
|
+
kind: "hello" | "bye" | "offer" | "answer" | "ice-candidate" | "presenter-claim" | "presenter-release" | "state" | "reaction" | "relay-fallback" | "mute-request" | "kicked" | "talking-stick";
|
|
39
40
|
/** The sender's authenticated uid - the real caller's own uid when `join()` returned `authenticated: true`, else
|
|
40
41
|
* the `guest:<random>` uid `BaseVideoMeetingRoute.join()` minted. The server refuses a published message whose
|
|
41
42
|
* `from` isn't the authenticated caller's uid (it stops one participant speaking as another), so this must be
|
|
@@ -54,6 +55,11 @@ export interface SignalMessage {
|
|
|
54
55
|
state?: ParticipantState;
|
|
55
56
|
/** `reaction` only - one of `REACTION_EMOJIS`. */
|
|
56
57
|
emoji?: string;
|
|
58
|
+
/** `talking-stick` only - whether talking-stick mode is currently on. */
|
|
59
|
+
active?: boolean;
|
|
60
|
+
/** `talking-stick` only - the peer id (`MeshParticipant.uid`/this tab's own id) currently holding the stick.
|
|
61
|
+
* Absent when `active` is `false`, or when nobody holds it yet. */
|
|
62
|
+
holder?: string;
|
|
57
63
|
/** `offer`/`answer` only. */
|
|
58
64
|
sdp?: RTCSessionDescriptionInit;
|
|
59
65
|
/** `ice-candidate` only. */
|
|
@@ -209,4 +215,12 @@ export type MeshEvent = {
|
|
|
209
215
|
* "removed by the host" state rather than the ordinary "you left" one. */
|
|
210
216
|
| {
|
|
211
217
|
type: "kicked";
|
|
218
|
+
}
|
|
219
|
+
/** Talking-stick mode turned on or off, or the stick changed hands - see this module's doc comment and
|
|
220
|
+
* `MeshConnectionManager.setTalkingStick()`. `holder` is the peer id now holding it; absent while `active` is
|
|
221
|
+
* `false`, or (transiently) if whoever held it has since left the call. */
|
|
222
|
+
| {
|
|
223
|
+
type: "talking-stick-changed";
|
|
224
|
+
active: boolean;
|
|
225
|
+
holder?: string;
|
|
212
226
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rapidmx/meet-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "RapidMX plugin that provides WebRTC video conferencing, joinable from a calendar invite or a shared link.",
|
|
5
5
|
"repository": "https://github.com/rapidmx/meet-plugin.git",
|
|
6
6
|
"author": "RapidREST <rapidrests@gmail.com>",
|