mediasfu-shared 1.0.0 → 1.0.2

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.
Files changed (125) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +103 -228
  3. package/dist/index.cjs +7500 -2163
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.ts +4203 -273
  6. package/dist/index.js +7521 -2184
  7. package/dist/index.js.map +1 -1
  8. package/package.json +85 -78
  9. package/src/ProducerClient/producerClientEmits/joinRoomClient.ts +57 -0
  10. package/src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts +401 -0
  11. package/src/consumers/addVideosGrid.ts +3 -2
  12. package/src/consumers/changeVids.ts +111 -41
  13. package/src/consumers/checkPermission.ts +35 -1
  14. package/src/consumers/connectRecvTransport.ts +42 -1
  15. package/src/consumers/consumerResume.ts +2 -2
  16. package/src/consumers/dispStreams.ts +83 -37
  17. package/src/consumers/frameworkConsumerContract.ts +6 -0
  18. package/src/consumers/generatePageContent.ts +24 -10
  19. package/src/consumers/getPipedProducersAlt.ts +112 -16
  20. package/src/consumers/gridLayout/addVideosGrid.engine.ts +42 -0
  21. package/src/consumers/gridLayout/prepopulateUserMedia.engine.ts +444 -0
  22. package/src/consumers/mixStreams.ts +45 -14
  23. package/src/consumers/onScreenChanges.ts +25 -10
  24. package/src/consumers/prepopulateUserMedia.ts +3 -2
  25. package/src/consumers/processConsumerTransports.ts +68 -23
  26. package/src/consumers/processConsumerTransportsAudio.ts +53 -16
  27. package/src/consumers/reUpdateInter.ts +61 -21
  28. package/src/consumers/readjust.ts +30 -14
  29. package/src/consumers/reorderStreams.ts +76 -42
  30. package/src/consumers/resumePauseAudioStreams.ts +66 -17
  31. package/src/consumers/resumePauseStreams.ts +53 -10
  32. package/src/consumers/socketReceiveMethods/joinConsumeRoom.ts +8 -0
  33. package/src/consumers/socketReceiveMethods/newPipeProducer.ts +114 -0
  34. package/src/consumers/socketReceiveMethods/producerClosed.ts +13 -0
  35. package/src/consumers/streamSuccessScreen.ts +2 -2
  36. package/src/consumers/streamSuccessVideo.ts +5 -0
  37. package/src/consumers/translationConsumerSwitch.ts +299 -0
  38. package/src/index.ts +85 -1
  39. package/src/methods/coHostMethods/modifyCoHostSettings.ts +9 -9
  40. package/src/methods/displaySettings/modifyDisplaySettings.ts +5 -0
  41. package/src/methods/index.ts +66 -0
  42. package/src/methods/message/sendMessage.ts +12 -29
  43. package/src/methods/panelists/focusPanelists.ts +83 -0
  44. package/src/methods/panelists/index.ts +3 -0
  45. package/src/methods/panelists/launchPanelists.ts +13 -0
  46. package/src/methods/panelists/updatePanelists.ts +135 -0
  47. package/src/methods/permissions/index.ts +3 -0
  48. package/src/methods/permissions/launchPermissions.ts +13 -0
  49. package/src/methods/permissions/updateParticipantPermission.ts +127 -0
  50. package/src/methods/permissions/updatePermissionConfig.ts +52 -0
  51. package/src/methods/polls/pollUpdated.ts +88 -0
  52. package/src/methods/recording/confirmRecording.ts +15 -12
  53. package/src/methods/recording/recordResumeTimer.ts +2 -2
  54. package/src/methods/recording/recordStartTimer.ts +2 -2
  55. package/src/methods/recording/timeLeftRecording.ts +25 -0
  56. package/src/methods/requests/hostRequestResponse.ts +153 -0
  57. package/src/methods/settings/modifySettings.ts +17 -17
  58. package/src/methods/socketReceive/allMembers.ts +450 -0
  59. package/src/methods/socketReceive/allMembersRest.ts +480 -0
  60. package/src/methods/socketReceive/allWaitingRoomMembers.ts +35 -0
  61. package/src/methods/socketReceive/banParticipant.ts +73 -0
  62. package/src/methods/socketReceive/controlMediaHost.ts +280 -0
  63. package/src/methods/socketReceive/disconnect.ts +40 -0
  64. package/src/methods/socketReceive/disconnectUserSelf.ts +56 -0
  65. package/src/methods/socketReceive/getDomains.ts +112 -0
  66. package/src/methods/socketReceive/meetingEnded.ts +49 -0
  67. package/src/methods/socketReceive/meetingStillThere.ts +26 -0
  68. package/src/methods/socketReceive/panelistReceiveMethods.ts +195 -0
  69. package/src/methods/socketReceive/participantRequested.ts +48 -0
  70. package/src/methods/socketReceive/permissionReceiveMethods.ts +59 -0
  71. package/src/methods/socketReceive/personJoined.ts +35 -0
  72. package/src/methods/socketReceive/producerMediaClosed.ts +223 -0
  73. package/src/methods/socketReceive/producerMediaPaused.ts +267 -0
  74. package/src/methods/socketReceive/producerMediaResumed.ts +157 -0
  75. package/src/methods/socketReceive/reInitiateRecording.ts +53 -0
  76. package/src/methods/socketReceive/receiveMessage.ts +117 -0
  77. package/src/methods/socketReceive/recordingNotice.ts +286 -0
  78. package/src/methods/socketReceive/roomRecordParams.ts +122 -0
  79. package/src/methods/socketReceive/screenProducerId.ts +61 -0
  80. package/src/methods/socketReceive/startRecords.ts +46 -0
  81. package/src/methods/socketReceive/stoppedRecording.ts +44 -0
  82. package/src/methods/socketReceive/translationReceiveMethods.ts +581 -0
  83. package/src/methods/socketReceive/updateConsumingDomains.ts +128 -0
  84. package/src/methods/socketReceive/updateMediaSettings.ts +45 -0
  85. package/src/methods/socketReceive/updatedCoHost.ts +75 -0
  86. package/src/methods/socketReceive/userWaiting.ts +45 -0
  87. package/src/methods/stream/clickAudio.ts +380 -0
  88. package/src/methods/stream/clickChat.ts +36 -0
  89. package/src/methods/stream/clickScreenShare.ts +173 -0
  90. package/src/methods/stream/clickVideo.ts +22 -5
  91. package/src/methods/stream/index.ts +1 -0
  92. package/src/methods/utils/SoundPlayer.ts +31 -0
  93. package/src/methods/utils/checkLimitsAndMakeRequest.ts +156 -2
  94. package/src/methods/utils/createResponseJoinRoom.ts +47 -0
  95. package/src/methods/utils/createRoomOnMediaSFU.ts +160 -0
  96. package/src/methods/utils/formatNumber.ts +42 -0
  97. package/src/methods/utils/generateRandomMessages.ts +70 -0
  98. package/src/methods/utils/generateRandomParticipants.ts +100 -0
  99. package/src/methods/utils/generateRandomPolls.ts +43 -0
  100. package/src/methods/utils/generateRandomRequestList.ts +51 -0
  101. package/src/methods/utils/generateRandomWaitingRoomList.ts +17 -0
  102. package/src/methods/utils/getModalPosition.ts +23 -0
  103. package/src/methods/utils/getOverlayPosition.ts +37 -0
  104. package/src/methods/utils/initialValuesState.ts +405 -0
  105. package/src/methods/utils/joinRoomOnMediaSFU.ts +124 -0
  106. package/src/methods/utils/liveSubtitle.ts +107 -0
  107. package/src/methods/utils/meetingTimeRemaining.ts +33 -0
  108. package/src/methods/utils/meetingTimer/startMeetingProgressTimer.ts +72 -0
  109. package/src/methods/utils/producer/aParams.ts +10 -0
  110. package/src/methods/utils/producer/hParams.ts +26 -0
  111. package/src/methods/utils/producer/screenParams.ts +13 -0
  112. package/src/methods/utils/producer/vParams.ts +26 -0
  113. package/src/methods/utils/producer/videoCaptureConstraints.ts +65 -0
  114. package/src/methods/utils/resolveMediaSFURoomApi.ts +16 -0
  115. package/src/methods/utils/sleep.ts +24 -0
  116. package/src/methods/utils/translationLanguages.ts +308 -0
  117. package/src/methods/utils/webrtc.ts +44 -0
  118. package/src/methods/welcome/handleWelcomeRequest.ts +11 -2
  119. package/src/methods/welcome/index.ts +5 -1
  120. package/src/methods/whiteboard/captureCanvasStream.ts +128 -0
  121. package/src/producers/producerEmits/joinConRoom.ts +2 -2
  122. package/src/producers/producerEmits/joinLocalRoom.ts +240 -0
  123. package/src/producers/producerEmits/joinRoom.ts +129 -0
  124. package/src/types/shared-base-types.ts +14 -3
  125. package/src/types/types.ts +255 -0
@@ -0,0 +1,450 @@
1
+ import type { Socket } from 'socket.io-client';
2
+ import type {
3
+ ConnectIpsParameters,
4
+ ConnectLocalIpsParameters,
5
+ OnScreenChangesParameters,
6
+ ReorderStreamsParameters,
7
+ } from '../../types/types';
8
+
9
+ export interface AllMembersParticipantLike {
10
+ id?: string | number;
11
+ isBanned?: boolean;
12
+ isSuspended?: boolean;
13
+ name?: string | null;
14
+ audioID?: string | null;
15
+ videoID?: string | null;
16
+ }
17
+
18
+ export interface AllMembersRequestLike {
19
+ id?: string | number;
20
+ }
21
+
22
+ export interface AllMembersOnScreenChangesOptions<TParameters = unknown> {
23
+ parameters: TParameters;
24
+ }
25
+
26
+ export type AllMembersOnScreenChangesType<TParameters = unknown> = (
27
+ options: AllMembersOnScreenChangesOptions<TParameters>,
28
+ ) => Promise<unknown>;
29
+
30
+ export interface AllMembersConnectIpsOptions<
31
+ TParameters = unknown,
32
+ TConsumeSocket = unknown,
33
+ > {
34
+ consume_sockets: TConsumeSocket[];
35
+ remIP: string[];
36
+ parameters: TParameters;
37
+ apiUserName: string;
38
+ apiKey: string;
39
+ apiToken: string;
40
+ }
41
+
42
+ export type AllMembersConnectIpsType<
43
+ TParameters = unknown,
44
+ TConsumeSocket = unknown,
45
+ > = (
46
+ options: AllMembersConnectIpsOptions<TParameters, TConsumeSocket>,
47
+ ) => Promise<[TConsumeSocket[], string[]]>;
48
+
49
+ export interface AllMembersConnectLocalIpsOptions<
50
+ TParameters = unknown,
51
+ TSocket = Socket,
52
+ > {
53
+ socket: TSocket;
54
+ parameters: TParameters;
55
+ }
56
+
57
+ export type AllMembersConnectLocalIpsType<
58
+ TParameters = unknown,
59
+ TSocket = Socket,
60
+ > = (
61
+ options: AllMembersConnectLocalIpsOptions<TParameters, TSocket>,
62
+ ) => Promise<unknown>;
63
+
64
+ export interface AllMembersSleepOptions {
65
+ ms: number;
66
+ }
67
+
68
+ export type AllMembersSleepType = (
69
+ options: AllMembersSleepOptions,
70
+ ) => Promise<unknown>;
71
+
72
+ export interface AllMembersReorderStreamsOptions<TParameters = unknown> {
73
+ add: boolean;
74
+ screenChanged?: boolean;
75
+ parameters: TParameters;
76
+ }
77
+
78
+ export type AllMembersReorderStreamsType<TParameters = unknown> = (
79
+ options: AllMembersReorderStreamsOptions<TParameters>,
80
+ ) => Promise<unknown>;
81
+
82
+ export interface AllMembersParameters<
83
+ TParticipantSummary extends AllMembersParticipantLike = AllMembersParticipantLike,
84
+ TParticipant extends AllMembersParticipantLike = AllMembersParticipantLike,
85
+ TRequest extends AllMembersRequestLike = AllMembersRequestLike,
86
+ TCoHostResponsibility = unknown,
87
+ TWaitingRoomParticipant = unknown,
88
+ TConsumeSocket = unknown,
89
+ TSocket = Socket,
90
+ TOnScreenChangesParameters = OnScreenChangesParameters,
91
+ TConnectIpsParameters = ConnectIpsParameters,
92
+ TConnectLocalIpsParameters = ConnectLocalIpsParameters,
93
+ TReorderStreamsParameters = ReorderStreamsParameters,
94
+ TAllParameters extends TOnScreenChangesParameters &
95
+ TConnectIpsParameters &
96
+ TConnectLocalIpsParameters &
97
+ TReorderStreamsParameters = TOnScreenChangesParameters &
98
+ TConnectIpsParameters &
99
+ TConnectLocalIpsParameters &
100
+ TReorderStreamsParameters,
101
+ > {
102
+ participantsAll: TParticipantSummary[];
103
+ participants: TParticipant[];
104
+ dispActiveNames: string[];
105
+ requestList: TRequest[];
106
+ coHost: string;
107
+ coHostResponsibility: TCoHostResponsibility[];
108
+ lock_screen: boolean;
109
+ firstAll: boolean;
110
+ membersReceived: boolean;
111
+ roomRecvIPs: string[];
112
+ deferScreenReceived: boolean;
113
+ screenId?: string;
114
+ shareScreenStarted: boolean;
115
+ meetingDisplayType: string;
116
+ hostFirstSwitch: boolean;
117
+ waitingRoomList: TWaitingRoomParticipant[];
118
+ islevel: string;
119
+ socket: TSocket;
120
+ updateParticipantsAll: (participantsAll: TParticipantSummary[]) => void;
121
+ updateParticipants: (participants: TParticipant[]) => void;
122
+ updateRequestList: (requestList: TRequest[]) => void;
123
+ updateCoHost: (coHost: string) => void;
124
+ updateCoHostResponsibility: (coHostRes: TCoHostResponsibility[]) => void;
125
+ updateFirstAll: (firstAll: boolean) => void;
126
+ updateMembersReceived: (membersReceived: boolean) => void;
127
+ updateDeferScreenReceived: (deferScreenReceived: boolean) => void;
128
+ updateShareScreenStarted: (shareScreenStarted: boolean) => void;
129
+ updateHostFirstSwitch: (hostFirstSwitch: boolean) => void;
130
+ updateConsume_sockets: (sockets: TConsumeSocket[]) => void;
131
+ updateRoomRecvIPs: (ips: string[]) => void;
132
+ updateIsLoadingModalVisible: (visible: boolean) => void;
133
+ updateTotalReqWait: (total: number) => void;
134
+ onScreenChanges: AllMembersOnScreenChangesType<TOnScreenChangesParameters>;
135
+ connectIps: AllMembersConnectIpsType<TConnectIpsParameters, TConsumeSocket>;
136
+ connectLocalIps?: AllMembersConnectLocalIpsType<TConnectLocalIpsParameters, TSocket>;
137
+ sleep: AllMembersSleepType;
138
+ reorderStreams: AllMembersReorderStreamsType<TReorderStreamsParameters>;
139
+ getUpdatedAllParams: () =>
140
+ AllMembersParameters<
141
+ TParticipantSummary,
142
+ TParticipant,
143
+ TRequest,
144
+ TCoHostResponsibility,
145
+ TWaitingRoomParticipant,
146
+ TConsumeSocket,
147
+ TSocket,
148
+ TOnScreenChangesParameters,
149
+ TConnectIpsParameters,
150
+ TConnectLocalIpsParameters,
151
+ TReorderStreamsParameters,
152
+ TAllParameters
153
+ > & TAllParameters;
154
+ [key: string]: any;
155
+ }
156
+
157
+ export interface AllMembersOptions<
158
+ TParticipantSummary extends AllMembersParticipantLike = AllMembersParticipantLike,
159
+ TParticipant extends AllMembersParticipantLike = AllMembersParticipantLike,
160
+ TRequest extends AllMembersRequestLike = AllMembersRequestLike,
161
+ TCoHostResponsibility = unknown,
162
+ TWaitingRoomParticipant = unknown,
163
+ TConsumeSocket = unknown,
164
+ TSocket = Socket,
165
+ TOnScreenChangesParameters = OnScreenChangesParameters,
166
+ TConnectIpsParameters = ConnectIpsParameters,
167
+ TConnectLocalIpsParameters = ConnectLocalIpsParameters,
168
+ TReorderStreamsParameters = ReorderStreamsParameters,
169
+ TAllParameters extends TOnScreenChangesParameters &
170
+ TConnectIpsParameters &
171
+ TConnectLocalIpsParameters &
172
+ TReorderStreamsParameters = TOnScreenChangesParameters &
173
+ TConnectIpsParameters &
174
+ TConnectLocalIpsParameters &
175
+ TReorderStreamsParameters,
176
+ > {
177
+ members: TParticipant[];
178
+ requestss: TRequest[];
179
+ coHoste: string;
180
+ coHostRes: TCoHostResponsibility[];
181
+ parameters:
182
+ AllMembersParameters<
183
+ TParticipantSummary,
184
+ TParticipant,
185
+ TRequest,
186
+ TCoHostResponsibility,
187
+ TWaitingRoomParticipant,
188
+ TConsumeSocket,
189
+ TSocket,
190
+ TOnScreenChangesParameters,
191
+ TConnectIpsParameters,
192
+ TConnectLocalIpsParameters,
193
+ TReorderStreamsParameters,
194
+ TAllParameters
195
+ > & TAllParameters;
196
+ consume_sockets: TConsumeSocket[];
197
+ apiUserName: string;
198
+ apiKey: string;
199
+ apiToken: string;
200
+ }
201
+
202
+ export type AllMembersType<
203
+ TParticipantSummary extends AllMembersParticipantLike = AllMembersParticipantLike,
204
+ TParticipant extends AllMembersParticipantLike = AllMembersParticipantLike,
205
+ TRequest extends AllMembersRequestLike = AllMembersRequestLike,
206
+ TCoHostResponsibility = unknown,
207
+ TWaitingRoomParticipant = unknown,
208
+ TConsumeSocket = unknown,
209
+ TSocket = Socket,
210
+ TOnScreenChangesParameters = OnScreenChangesParameters,
211
+ TConnectIpsParameters = ConnectIpsParameters,
212
+ TConnectLocalIpsParameters = ConnectLocalIpsParameters,
213
+ TReorderStreamsParameters = ReorderStreamsParameters,
214
+ TAllParameters extends TOnScreenChangesParameters &
215
+ TConnectIpsParameters &
216
+ TConnectLocalIpsParameters &
217
+ TReorderStreamsParameters = TOnScreenChangesParameters &
218
+ TConnectIpsParameters &
219
+ TConnectLocalIpsParameters &
220
+ TReorderStreamsParameters,
221
+ > = (
222
+ options: AllMembersOptions<
223
+ TParticipantSummary,
224
+ TParticipant,
225
+ TRequest,
226
+ TCoHostResponsibility,
227
+ TWaitingRoomParticipant,
228
+ TConsumeSocket,
229
+ TSocket,
230
+ TOnScreenChangesParameters,
231
+ TConnectIpsParameters,
232
+ TConnectLocalIpsParameters,
233
+ TReorderStreamsParameters,
234
+ TAllParameters
235
+ >,
236
+ ) => Promise<void>;
237
+
238
+ /**
239
+ * Reconciles the authoritative member list with local UI state and receiver-domain setup.
240
+ *
241
+ * @param {AllMembersOptions} options - Member payload, host metadata, and receiver connection helpers.
242
+ * @returns {Promise<void>} Resolves once participant state, requests, and receiver sockets are synchronized.
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * await allMembers({
247
+ * members,
248
+ * requestss,
249
+ * coHoste: 'host-2',
250
+ * coHostRes,
251
+ * parameters,
252
+ * consume_sockets,
253
+ * apiUserName: 'api-user',
254
+ * apiKey: 'api-key',
255
+ * apiToken: 'api-token',
256
+ * });
257
+ * ```
258
+ */
259
+ export const allMembers = async <
260
+ TParticipantSummary extends AllMembersParticipantLike = AllMembersParticipantLike,
261
+ TParticipant extends AllMembersParticipantLike = AllMembersParticipantLike,
262
+ TRequest extends AllMembersRequestLike = AllMembersRequestLike,
263
+ TCoHostResponsibility = unknown,
264
+ TWaitingRoomParticipant = unknown,
265
+ TConsumeSocket = unknown,
266
+ TSocket = Socket,
267
+ TOnScreenChangesParameters = OnScreenChangesParameters,
268
+ TConnectIpsParameters = ConnectIpsParameters,
269
+ TConnectLocalIpsParameters = ConnectLocalIpsParameters,
270
+ TReorderStreamsParameters = ReorderStreamsParameters,
271
+ TAllParameters extends TOnScreenChangesParameters &
272
+ TConnectIpsParameters &
273
+ TConnectLocalIpsParameters &
274
+ TReorderStreamsParameters = TOnScreenChangesParameters &
275
+ TConnectIpsParameters &
276
+ TConnectLocalIpsParameters &
277
+ TReorderStreamsParameters,
278
+ >({
279
+ members,
280
+ requestss,
281
+ coHoste,
282
+ coHostRes,
283
+ parameters,
284
+ consume_sockets,
285
+ apiUserName,
286
+ apiKey,
287
+ apiToken,
288
+ }: AllMembersOptions<
289
+ TParticipantSummary,
290
+ TParticipant,
291
+ TRequest,
292
+ TCoHostResponsibility,
293
+ TWaitingRoomParticipant,
294
+ TConsumeSocket,
295
+ TSocket,
296
+ TOnScreenChangesParameters,
297
+ TConnectIpsParameters,
298
+ TConnectLocalIpsParameters,
299
+ TReorderStreamsParameters,
300
+ TAllParameters
301
+ >): Promise<void> => {
302
+ let {
303
+ participantsAll,
304
+ participants,
305
+ dispActiveNames,
306
+ requestList,
307
+ lock_screen,
308
+ firstAll,
309
+ membersReceived,
310
+ roomRecvIPs,
311
+ deferScreenReceived,
312
+ screenId,
313
+ shareScreenStarted,
314
+ meetingDisplayType,
315
+ hostFirstSwitch,
316
+ waitingRoomList,
317
+ islevel,
318
+ socket,
319
+ updateParticipantsAll,
320
+ updateParticipants,
321
+ updateRequestList,
322
+ updateCoHost,
323
+ updateCoHostResponsibility,
324
+ updateFirstAll,
325
+ updateMembersReceived,
326
+ updateDeferScreenReceived,
327
+ updateShareScreenStarted,
328
+ updateHostFirstSwitch,
329
+ updateConsume_sockets,
330
+ updateRoomRecvIPs,
331
+ updateIsLoadingModalVisible,
332
+ updateTotalReqWait,
333
+ onScreenChanges,
334
+ connectIps,
335
+ connectLocalIps,
336
+ sleep,
337
+ reorderStreams,
338
+ } = parameters;
339
+
340
+ participantsAll = members.map(({ isBanned, isSuspended, name, audioID, videoID }) => ({
341
+ isBanned,
342
+ isSuspended,
343
+ name,
344
+ audioID,
345
+ videoID,
346
+ })) as TParticipantSummary[];
347
+ updateParticipantsAll(participantsAll);
348
+
349
+ participants = members.filter(
350
+ (participant) => !participant.isBanned && !participant.isSuspended,
351
+ );
352
+ updateParticipants(participants);
353
+
354
+ if (dispActiveNames.length > 0) {
355
+ const missingDisplayedParticipants = dispActiveNames.filter(
356
+ (name) => !participants.some((participant) => participant.name === name),
357
+ );
358
+
359
+ if (missingDisplayedParticipants.length > 0) {
360
+ await reorderStreams({ add: false, screenChanged: true, parameters });
361
+ }
362
+ }
363
+
364
+ const onLocal = roomRecvIPs.length === 1 && roomRecvIPs[0] === 'none';
365
+
366
+ if (!membersReceived && !onLocal) {
367
+ if (roomRecvIPs.length < 1) {
368
+ const checkIPs = setInterval(async () => {
369
+ if (roomRecvIPs.length > 0) {
370
+ clearInterval(checkIPs);
371
+
372
+ if (deferScreenReceived && screenId) {
373
+ shareScreenStarted = true;
374
+ updateShareScreenStarted(shareScreenStarted);
375
+ }
376
+
377
+ const [sockets_, ips_] = await connectIps({
378
+ consume_sockets,
379
+ remIP: roomRecvIPs,
380
+ parameters,
381
+ apiUserName,
382
+ apiKey,
383
+ apiToken,
384
+ });
385
+
386
+ updateConsume_sockets(sockets_);
387
+ updateRoomRecvIPs(ips_);
388
+ membersReceived = true;
389
+ updateMembersReceived(membersReceived);
390
+
391
+ await sleep({ ms: 250 });
392
+ updateIsLoadingModalVisible(false);
393
+ deferScreenReceived = false;
394
+ updateDeferScreenReceived(deferScreenReceived);
395
+ }
396
+ }, 10);
397
+ } else {
398
+ const [sockets_, ips_] = await connectIps({
399
+ consume_sockets,
400
+ remIP: roomRecvIPs,
401
+ parameters,
402
+ apiUserName,
403
+ apiKey,
404
+ apiToken,
405
+ });
406
+
407
+ updateConsume_sockets(sockets_);
408
+ updateRoomRecvIPs(ips_);
409
+ membersReceived = true;
410
+ updateMembersReceived(membersReceived);
411
+
412
+ if (deferScreenReceived && screenId) {
413
+ shareScreenStarted = true;
414
+ updateShareScreenStarted(shareScreenStarted);
415
+ }
416
+
417
+ await sleep({ ms: 250 });
418
+ updateIsLoadingModalVisible(false);
419
+ deferScreenReceived = false;
420
+ updateDeferScreenReceived(deferScreenReceived);
421
+ }
422
+ }
423
+
424
+ if (onLocal && !membersReceived) {
425
+ if (connectLocalIps) {
426
+ await connectLocalIps({ socket, parameters });
427
+ }
428
+ await sleep({ ms: 50 });
429
+ updateIsLoadingModalVisible(false);
430
+ }
431
+
432
+ requestList = requestss.filter((request) =>
433
+ participants.some((participant) => participant.id === request.id),
434
+ );
435
+ updateRequestList(requestList);
436
+ updateTotalReqWait(requestList.length + waitingRoomList.length);
437
+
438
+ updateCoHost(coHoste);
439
+ updateCoHostResponsibility(coHostRes);
440
+
441
+ if (!lock_screen && !firstAll) {
442
+ await onScreenChanges({ parameters });
443
+ if (meetingDisplayType !== 'all') {
444
+ updateFirstAll(true);
445
+ }
446
+ } else if (islevel === '2' && !hostFirstSwitch) {
447
+ await onScreenChanges({ parameters });
448
+ updateHostFirstSwitch(true);
449
+ }
450
+ };