@hysc/meeting 4.0.53 → 5.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 (40) hide show
  1. package/esm/boom-core/src/BoomCore/BCClient/clientEventType.d.ts +3 -1
  2. package/esm/boom-meeting/src/BMRoom/BMRoomVM.d.ts +0 -10
  3. package/esm/boom-meeting/src/BMStream/BMStreamModel.d.ts +13 -1
  4. package/esm/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +2 -2
  5. package/esm/boom-meeting/src/BMUser/BMUserVM.d.ts +10 -1
  6. package/esm/boom-meeting/src/handleEvent/attachEvents.d.ts +16 -0
  7. package/esm/boom-meeting/src/handleEvent/handleParticipantEvent.d.ts +1 -1
  8. package/esm/boom-meeting/src/handleEvent/handleRoomEvent.d.ts +6 -0
  9. package/esm/boom-meeting/src/handleEvent/roomErrEvent.d.ts +1 -0
  10. package/esm/boom-meeting/src/handleEvent/streamEvent.d.ts +23 -0
  11. package/esm/boom-meeting/src/type/customStats.d.ts +0 -2
  12. package/esm/boom-meeting/src/util/Pqueue.d.ts +1 -0
  13. package/esm/index.js +35641 -3
  14. package/esm/index.js.map +3 -3
  15. package/esm/src/BMRoom/BMRoom.d.ts +10 -2
  16. package/esm/src/BMStream/BMStreamModel.d.ts +13 -1
  17. package/esm/src/BMStream/BMStreamModelVM.d.ts +3 -2
  18. package/esm/src/BMUser/BMUserVM.d.ts +10 -1
  19. package/esm/src/handleEvent/attachEvents.d.ts +16 -0
  20. package/esm/src/handleEvent/handleParticipantEvent.d.ts +1 -1
  21. package/esm/src/handleEvent/handleRoomEvent.d.ts +6 -0
  22. package/esm/src/handleEvent/roomErrEvent.d.ts +1 -0
  23. package/esm/src/handleEvent/streamEvent.d.ts +23 -0
  24. package/esm/src/index.d.ts +2 -2
  25. package/esm/src/util/Pqueue.d.ts +1 -0
  26. package/package.json +3 -3
  27. package/umd/boom-core/src/BoomCore/BCClient/clientEventType.d.ts +3 -1
  28. package/umd/boom-meeting/src/BMRoom/BMRoomVM.d.ts +0 -10
  29. package/umd/boom-meeting/src/BMStream/BMStreamModel.d.ts +13 -1
  30. package/umd/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +2 -2
  31. package/umd/boom-meeting/src/BMUser/BMUserVM.d.ts +10 -1
  32. package/umd/boom-meeting/src/handleEvent/attachEvents.d.ts +16 -0
  33. package/umd/boom-meeting/src/handleEvent/handleParticipantEvent.d.ts +1 -1
  34. package/umd/boom-meeting/src/handleEvent/handleRoomEvent.d.ts +6 -0
  35. package/umd/boom-meeting/src/handleEvent/roomErrEvent.d.ts +1 -0
  36. package/umd/boom-meeting/src/handleEvent/streamEvent.d.ts +23 -0
  37. package/umd/boom-meeting/src/type/customStats.d.ts +0 -2
  38. package/umd/boom-meeting/src/util/Pqueue.d.ts +1 -0
  39. package/umd/index.js +2 -2
  40. package/umd/src/BMRoom/BMRoom.d.ts +1 -0
@@ -3,13 +3,14 @@ import BMRoomVM, { AudioProfileInfo } from "./BMRoomVM";
3
3
  import BMUserVM from '../BMUser/BMUserVM';
4
4
  import { SingleLocalStream, SingleRemoteStream, SubscribeOptions } from '../type';
5
5
  import BMChatVM from '../BMChat/BMChatVM';
6
- import BMStreamModelVM from '../BMStream/BMStreamModelVM';
6
+ import BMStreamModelVM from "../BMStream/BMStreamModelVM";
7
7
  import { Device, VideoProfile } from '@hysc/core/esm/BoomAdapter/type/value';
8
8
  import BMRoomInfo from './BMRoomInfo';
9
9
  import { BehaviorSubject, Subject } from 'rxjs';
10
10
  import BMStreamModel from '../BMStream/BMStreamModel';
11
11
  import BMUser from '../BMUser/BMUser';
12
12
  import BMLiveVM from './BMLiveVM';
13
+ import SingletonQueue, { PullItem } from "../SingletonQueue/SingletonQueue";
13
14
  interface BMRoomProps {
14
15
  initDevices: boolean;
15
16
  }
@@ -27,6 +28,7 @@ export default class BMRoom {
27
28
  selectVideoDevice: Device | null;
28
29
  selectAudioDevice: Device | null;
29
30
  selectAudioOutputDevice: Device | null;
31
+ streamQueue: SingletonQueue;
30
32
  /**
31
33
  * 这个参数是和业务相关的功能,业务上的参会者列表是可以配置的,如果设置了只展示一列,那么所有的用户都要存储
32
34
  * 在commonUserList中
@@ -75,6 +77,7 @@ export default class BMRoom {
75
77
  * 会控底层相关处理, 比如是否取消自动拉流
76
78
  */
77
79
  private meetingControlOptions;
80
+ forceId: string;
78
81
  get isSingleColumns(): boolean;
79
82
  /**
80
83
  * 传递信息用的,主要是用于message信令往上层业务发送消息
@@ -246,7 +249,6 @@ export default class BMRoom {
246
249
  */
247
250
  setLocalSpeakerEnable(status: boolean): Promise<void>;
248
251
  private _attachEvents;
249
- private _attachBrtcEvent;
250
252
  /**
251
253
  * 创建本地流
252
254
  * @param options
@@ -587,6 +589,7 @@ export default class BMRoom {
587
589
  /**
588
590
  * 处理流出现connect-error的逻辑,本地流需要重新推流,远端流需要重新拉流
589
591
  * @param event
592
+ * @param failed
590
593
  */
591
594
  private handleStreamConnectError;
592
595
  /**
@@ -634,6 +637,11 @@ export default class BMRoom {
634
637
  * 重拉远端流
635
638
  */
636
639
  handleResetOtherStreamStatus(): void;
640
+ addUser2Queue(pullItem: PullItem): Promise<void>;
641
+ queueProcessor: import("lodash-es").DebouncedFunc<(uIds: Map<string, PullItem>) => Promise<void>>;
642
+ handleAddStreams(streams: SingleRemoteStream[]): void;
643
+ queryBrtcStreams(uids: string[]): Promise<any>;
644
+ getForceUser(forceId: string): Promise<void>;
637
645
  getVersion(): string;
638
646
  }
639
647
  export {};
@@ -2,6 +2,7 @@ import { SingleStream, SubscribeOptions } from "../type";
2
2
  import BMUser from "../BMUser/BMUser";
3
3
  import { BehaviorSubject, Subject } from "rxjs";
4
4
  import BMStreamModelVM from "./BMStreamModelVM";
5
+ import { BloudStreamState } from "../handleEvent/attachEvents";
5
6
  /**
6
7
  * @name: BMStreamModel
7
8
  * @author: yangliye
@@ -22,9 +23,14 @@ export interface NoPlayerContainer {
22
23
  container: 'small' | 'big';
23
24
  id: string;
24
25
  }
26
+ export interface BloudStream {
27
+ video: boolean;
28
+ audio: boolean;
29
+ }
25
30
  export default class BMStreamModel {
26
31
  private user;
27
32
  private _stream;
33
+ bloudStream: BloudStream | undefined;
28
34
  /**
29
35
  * 流类型
30
36
  */
@@ -136,6 +142,11 @@ export default class BMStreamModel {
136
142
  * @param bmStreamVm
137
143
  */
138
144
  updateStream(stream: SingleStream | undefined, needReProcess: boolean | undefined, bmStreamVm: BMStreamModelVM): void;
145
+ /**
146
+ * 更新bloud的stream,设置流状态
147
+ * @param streamState
148
+ */
149
+ updateBloudStream(streamState: BloudStreamState | undefined, bmStreamVM: BMStreamModelVM): void;
139
150
  private onPlayerStateChange;
140
151
  handleStreamConnectError: () => void;
141
152
  /**
@@ -158,6 +169,7 @@ export default class BMStreamModel {
158
169
  * 是否是屏幕共享的流
159
170
  */
160
171
  get isShare(): boolean | undefined;
172
+ get isWeb(): boolean;
161
173
  /**
162
174
  * 当前音频是否开启
163
175
  */
@@ -254,7 +266,7 @@ export default class BMStreamModel {
254
266
  /**
255
267
  * 启动音频音量检测
256
268
  */
257
- collectAudioLevel(): void;
269
+ collectAudioLevel: () => void;
258
270
  private handleAudioLevel;
259
271
  checkVideo(): void;
260
272
  /**
@@ -45,7 +45,7 @@ export default class BMStreamModelVM {
45
45
  shareStreamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
46
46
  localStreamErrorWatcher: Subject<string>;
47
47
  localModel: BMStreamModel | null;
48
- private room;
48
+ room: BMRoom | null;
49
49
  bloudStream: any;
50
50
  audioStream: SingleLocalStream | undefined;
51
51
  brtcStream: SingleLocalStream | undefined;
@@ -53,13 +53,13 @@ export default class BMStreamModelVM {
53
53
  * 本地是否在屏幕共享
54
54
  */
55
55
  localIsShare: boolean;
56
+ isShareWatcher: Subject<boolean>;
56
57
  _speaker_enable: boolean;
57
58
  speakerEnableWatcher: BehaviorSubject<boolean>;
58
59
  /**
59
60
  * 混流
60
61
  */
61
62
  mixStreamModelWatcher: BehaviorSubject<BMStreamModel | null>;
62
- isShareWatcher: Subject<boolean>;
63
63
  canvasTimer: NodeJS.Timeout | null;
64
64
  /**
65
65
  * 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
@@ -103,6 +103,7 @@ export default class BMStreamModelVM {
103
103
  addStreamModel(streamModel: BMStreamModel): void;
104
104
  addShareStreamModel(streamModel: BMStreamModel): void;
105
105
  removeStreamModel(streamModel: BMStreamModel): void;
106
+ removeShareStreamModelByUId(uid: string): void;
106
107
  removeShareStreamModel(streamModel: BMStreamModel): void;
107
108
  /**`
108
109
  * 通过用户id删除streamModel
@@ -14,6 +14,14 @@ export interface ChangeIsGuest {
14
14
  preIsGuest: boolean;
15
15
  isGuest: boolean;
16
16
  }
17
+ /**
18
+ * bloud 一页用户拉取数量
19
+ */
20
+ export declare const BLOUD_PAGE_SIZE = 500;
21
+ /**
22
+ * 嘉宾及以上身份用户
23
+ */
24
+ export declare const PERMISSION_NOT_COMMON = "RWPSAVMO,RWPSAVM,RWPSAV";
17
25
  export default class BMUserVM {
18
26
  userList: Map<string, BMUser>;
19
27
  audiencesList: Map<string, BMUser>;
@@ -75,6 +83,7 @@ export default class BMUserVM {
75
83
  * 刚加入房间时初始化人数
76
84
  */
77
85
  initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
86
+ addBcUsers(users: Map<string, BCUser>): void;
78
87
  /**
79
88
  * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
80
89
  * @param userId
@@ -132,7 +141,7 @@ export default class BMUserVM {
132
141
  * @param permission
133
142
  * @param useNew 是否使用getUsersList
134
143
  */
135
- transBloudUsers: (page: number, permission?: string, useNew?: boolean) => Promise<void>;
144
+ transBloudUsers: (page: number, permission?: string, useNew?: boolean, failedNum?: number) => Promise<void>;
136
145
  /**
137
146
  * 本地嘉宾用户降级为普通参会者之后要取消拉流
138
147
  */
@@ -22,6 +22,22 @@ export declare enum MessageType {
22
22
  */
23
23
  AUDIO_FORCE_CHANGE = "audio-force-change"
24
24
  }
25
+ export interface BloudStreamEventState {
26
+ userId: string;
27
+ streamId: string;
28
+ isScreen: boolean;
29
+ video: boolean;
30
+ audio: boolean;
31
+ }
32
+ export interface BloudStreamState {
33
+ video: boolean;
34
+ audio: boolean;
35
+ }
36
+ export interface BloudUnPubEvent {
37
+ userId: string;
38
+ streamId: string;
39
+ isScreen: boolean;
40
+ }
25
41
  export declare function attachBRTCEvent(boomCore: BoomCore, bmStreamVm: BMStreamModelVM, userVM: BMUserVM): void;
26
42
  declare type Observes = {
27
43
  [K in BCEvent]: BehaviorSubject<any>;
@@ -20,4 +20,4 @@ export declare function handleEvict(data: any, userVM: BMUserVM, bmStreamVm: BMS
20
20
  export declare function handleUpdateUser(data: any, userVM: BMUserVM, bmRoom: BMRoom, bmStreamVm: BMStreamModelVM, observes: any): void;
21
21
  export declare function updateBMUser(allUsers: Map<string, BCUser>, bmUser: BMUser, userVm: BMUserVM): void;
22
22
  export declare const handleUserRejoined: import("lodash-es").DebouncedFunc<(observes: any, eventsList: any, data: any) => void>;
23
- export declare function handleMoveUserRoom(bmRoom: BMRoom, userVM: BMUserVM, data: any, observes: any): void;
23
+ export declare function handleMoveUserRoom(bmRoom: BMRoom, userVM: BMUserVM, data: any, observes: any): Promise<void>;
@@ -9,6 +9,12 @@ import BMRoom from "../BMRoom/BMRoom";
9
9
  import BMUserVM from "../BMUser/BMUserVM";
10
10
  import BMStreamModelVM from "../BMStream/BMStreamModelVM";
11
11
  export declare function handleRoomConnected(data: any, bmRoom: BMRoom, userVM: BMUserVM, observes: any, shouldNotification?: boolean): Promise<void>;
12
+ export declare function handleInitJoinRoomUsers(bmRoom: BMRoom): void;
12
13
  export declare function handleRoomUpdated(data: any, bmRoom: BMRoom): void;
13
14
  export declare function handleInitRoomInfo(data: any, bmRoom: BMRoom): Promise<void>;
14
15
  export declare function handleRoomSync(data: any, bmRoom: BMRoom, userVm: BMUserVM, bmStreamVm: BMStreamModelVM): Promise<void>;
16
+ export declare function handleBrtcRoomReconnecting(data: any, bmRoom: BMRoom, observes: any): void;
17
+ export declare function handleBrtcRoomReconnected(data: any, bmRoom: BMRoom, observes: any): void;
18
+ export declare function handleBloudRoomReconnecting(data: any, bmRoom: BMRoom, observes: any): void;
19
+ export declare function handleBloudRoomReconnected(data: any, bmRoom: BMRoom, observes: any): Promise<void>;
20
+ export declare function handleBloudRoomSync(data: any, userVM: BMUserVM, bmRoom: BMRoom, bmStreamVm: BMStreamModelVM, observes: any): Promise<void>;
@@ -5,3 +5,4 @@ import BoomCore from "@hysc/core";
5
5
  export declare function handleBRTCRoomError(data: any, bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, observes: any): Promise<void>;
6
6
  export declare function reconnectBloud(boomCore: BoomCore, observes: any, data: any): Promise<unknown>;
7
7
  export declare function reconnectBRTCShareWS(boomCore: BoomCore): Promise<unknown>;
8
+ export declare function handleBloudError(bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, data: any, observes: any): Promise<void>;
@@ -8,9 +8,32 @@
8
8
  import BMStreamModel from "../BMStream/BMStreamModel";
9
9
  import { SingleRemoteStream } from "../type";
10
10
  import BMStreamModelVM from "../BMStream/BMStreamModelVM";
11
+ import { BloudStreamEventState, BloudUnPubEvent } from "./attachEvents";
12
+ import BMRoom from "../BMRoom/BMRoom";
13
+ export declare const shareFailedProcessQueue: Map<string, SingleRemoteStream>;
11
14
  export declare function handleUpdateStreamModelWithStream(stream: SingleRemoteStream, bmStreamVm: BMStreamModelVM): BMStreamModel | undefined;
12
15
  export declare function checkStreamIsNormal(streamModel: BMStreamModel | undefined): void;
13
16
  export declare function handleStreamUpdated(event: any, bmStreamVm: BMStreamModelVM, observes: any): void;
14
17
  export declare function addStreamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
15
18
  export declare function removeSteamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
16
19
  export declare function getStreamFromBrtcStreamMap(remoteStream: SingleRemoteStream): import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default | undefined;
20
+ export declare function handleBloudReconnectStreamEvent(bmStreamVm: BMStreamModelVM): void;
21
+ /**
22
+ * bloud brtc 断网重连的处理
23
+ * networkState 记录网络状态
24
+ * handleReconnectedStream 防抖函数,当双方有连接断网重连之后,会执行这个方法
25
+ *
26
+ * brtc 的sync-room 之后,本地会把所有的stream都销毁,清空,然后统一走一遍查询处理
27
+ * 绑定新的stream,这么做简单粗暴处理所有的brtc流,防止流重复问题i
28
+ */
29
+ export declare const networkState: {
30
+ bloud: boolean;
31
+ brtc: boolean;
32
+ };
33
+ export declare const handleReconnectedStream: import("lodash-es").DebouncedFunc<(bmRoom: BMRoom) => void>;
34
+ export declare function handleStreamPublished(event: any, bmStreamVm: BMStreamModelVM, bmRoom: BMRoom, observes: any): void;
35
+ export declare function handleBloudStreamPublished(data: any, bmStreamVm: BMStreamModelVM, observes: any): void;
36
+ export declare function handleBloudStreamPubAUpdate(data: BloudStreamEventState, bmStreamVm: BMStreamModelVM): void;
37
+ export declare function handleBloudStreamUnPublished(data: any, bmStreamVm: BMStreamModelVM, observes: any): void;
38
+ export declare function handleBloudStreamUnpublish(data: BloudUnPubEvent, bmStreamVm: BMStreamModelVM): void;
39
+ export declare function handleShareStreamFailed(bmRoom: BMRoom, bmStreamVm: BMStreamModelVM): void;
@@ -1,2 +1,2 @@
1
- import BoomMeetingSDK from './BMRoom/BMRoom';
2
- export default BoomMeetingSDK;
1
+ import BoomMeetingSDK from './BMRoom/BMRoom';
2
+ export default BoomMeetingSDK;
@@ -58,4 +58,5 @@ declare class Pqueue {
58
58
  onEmpty(): Promise<void>;
59
59
  }
60
60
  export declare const streamPullQueue: Pqueue;
61
+ export declare const eventQueue: Pqueue;
61
62
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hysc/meeting",
3
- "version": "4.0.53",
3
+ "version": "5.0.2",
4
4
  "description": "boom meeting",
5
5
  "main": "umd/index.js",
6
6
  "module": "esm/index.js",
@@ -14,7 +14,7 @@
14
14
  "author": "yangliye",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@hysc/core": "4.0.53",
17
+ "@hysc/core": "5.0.2",
18
18
  "lodash-es": "^4.17.21",
19
19
  "mitt": "^3.0.0",
20
20
  "@hysc/p-queue": "6.3.0",
@@ -23,7 +23,7 @@
23
23
  "@hysc/utils": "1.2.3"
24
24
  },
25
25
  "peerDependencies": {
26
- "@hysc/core": "4.0.53"
26
+ "@hysc/core": "5.0.2"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/lodash-es": "^4.17.6"
@@ -418,6 +418,8 @@ export declare enum BCEvent {
418
418
  NETWORK_ERROR = "network-error",
419
419
  BRTC_SYNC_ROOM_COMPLETED = "sync-room-completed",
420
420
  BRTC_ROOM_ROCONNECTING = "brtc-room-reconnecting",
421
- BRTC_ROOM_RECONNECTED = "brtc-room-reconnected"
421
+ BRTC_ROOM_RECONNECTED = "brtc-room-reconnected",
422
+ JOIN_READY = "join-ready",
423
+ BRTC_SHARE_SYNC_ROOM_COMPLETED = "brtc-share-sync-room-completed"
422
424
  }
423
425
  export default BCEvent;
@@ -165,16 +165,6 @@ export default class BMRoomVM {
165
165
  * @param enable
166
166
  */
167
167
  changeAutoMute(enable: 0 | 1 | 2): Promise<void>;
168
- /**
169
- * 允许成员接收进入/离开会议通知配置 0 关闭 1 开启自动静音
170
- * @param enable
171
- */
172
- allUserReceiveJoinLeaveMessages(enable: 0 | 1): Promise<void>;
173
- /**
174
- * 成员入会时给主持人播放提示音配置 0 关闭 1 开启自动静音
175
- * @param enable
176
- */
177
- userJoinMasterVoice(enable: 0 | 1): Promise<void>;
178
168
  /**
179
169
  * 观众点赞(走customMessage)
180
170
  * @param type 1:点赞, 2:送花, 3:爱心, 4: 鼓掌, 5: 喝彩
@@ -2,6 +2,7 @@ import { SingleStream, SubscribeOptions } from "../type";
2
2
  import BMUser from "../BMUser/BMUser";
3
3
  import { BehaviorSubject, Subject } from "rxjs";
4
4
  import BMStreamModelVM from "./BMStreamModelVM";
5
+ import { BloudStreamState } from "../handleEvent/attachEvents";
5
6
  /**
6
7
  * @name: BMStreamModel
7
8
  * @author: yangliye
@@ -22,9 +23,14 @@ export interface NoPlayerContainer {
22
23
  container: 'small' | 'big';
23
24
  id: string;
24
25
  }
26
+ export interface BloudStream {
27
+ video: boolean;
28
+ audio: boolean;
29
+ }
25
30
  export default class BMStreamModel {
26
31
  private user;
27
32
  private _stream;
33
+ bloudStream: BloudStream | undefined;
28
34
  /**
29
35
  * 流类型
30
36
  */
@@ -136,6 +142,11 @@ export default class BMStreamModel {
136
142
  * @param bmStreamVm
137
143
  */
138
144
  updateStream(stream: SingleStream | undefined, needReProcess: boolean | undefined, bmStreamVm: BMStreamModelVM): void;
145
+ /**
146
+ * 更新bloud的stream,设置流状态
147
+ * @param streamState
148
+ */
149
+ updateBloudStream(streamState: BloudStreamState | undefined, bmStreamVM: BMStreamModelVM): void;
139
150
  private onPlayerStateChange;
140
151
  handleStreamConnectError: () => void;
141
152
  /**
@@ -158,6 +169,7 @@ export default class BMStreamModel {
158
169
  * 是否是屏幕共享的流
159
170
  */
160
171
  get isShare(): boolean | undefined;
172
+ get isWeb(): boolean;
161
173
  /**
162
174
  * 当前音频是否开启
163
175
  */
@@ -254,7 +266,7 @@ export default class BMStreamModel {
254
266
  /**
255
267
  * 启动音频音量检测
256
268
  */
257
- collectAudioLevel(): void;
269
+ collectAudioLevel: () => void;
258
270
  private handleAudioLevel;
259
271
  checkVideo(): void;
260
272
  /**
@@ -45,7 +45,7 @@ export default class BMStreamModelVM {
45
45
  shareStreamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
46
46
  localStreamErrorWatcher: Subject<string>;
47
47
  localModel: BMStreamModel | null;
48
- private room;
48
+ room: BMRoom | null;
49
49
  bloudStream: any;
50
50
  audioStream: SingleLocalStream | undefined;
51
51
  brtcStream: SingleLocalStream | undefined;
@@ -53,13 +53,13 @@ export default class BMStreamModelVM {
53
53
  * 本地是否在屏幕共享
54
54
  */
55
55
  localIsShare: boolean;
56
+ isShareWatcher: Subject<boolean>;
56
57
  _speaker_enable: boolean;
57
58
  speakerEnableWatcher: BehaviorSubject<boolean>;
58
59
  /**
59
60
  * 混流
60
61
  */
61
62
  mixStreamModelWatcher: BehaviorSubject<BMStreamModel | null>;
62
- isShareWatcher: Subject<boolean>;
63
63
  canvasTimer: NodeJS.Timeout | null;
64
64
  /**
65
65
  * 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
@@ -14,6 +14,14 @@ export interface ChangeIsGuest {
14
14
  preIsGuest: boolean;
15
15
  isGuest: boolean;
16
16
  }
17
+ /**
18
+ * bloud 一页用户拉取数量
19
+ */
20
+ export declare const BLOUD_PAGE_SIZE = 500;
21
+ /**
22
+ * 嘉宾及以上身份用户
23
+ */
24
+ export declare const PERMISSION_NOT_COMMON = "RWPSAVMO,RWPSAVM,RWPSAV";
17
25
  export default class BMUserVM {
18
26
  userList: Map<string, BMUser>;
19
27
  audiencesList: Map<string, BMUser>;
@@ -75,6 +83,7 @@ export default class BMUserVM {
75
83
  * 刚加入房间时初始化人数
76
84
  */
77
85
  initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
86
+ addBcUsers(users: Map<string, BCUser>): void;
78
87
  /**
79
88
  * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
80
89
  * @param userId
@@ -132,7 +141,7 @@ export default class BMUserVM {
132
141
  * @param permission
133
142
  * @param useNew 是否使用getUsersList
134
143
  */
135
- transBloudUsers: (page: number, permission?: string, useNew?: boolean) => Promise<void>;
144
+ transBloudUsers: (page: number, permission?: string, useNew?: boolean, failedNum?: number) => Promise<void>;
136
145
  /**
137
146
  * 本地嘉宾用户降级为普通参会者之后要取消拉流
138
147
  */
@@ -22,6 +22,22 @@ export declare enum MessageType {
22
22
  */
23
23
  AUDIO_FORCE_CHANGE = "audio-force-change"
24
24
  }
25
+ export interface BloudStreamEventState {
26
+ userId: string;
27
+ streamId: string;
28
+ isScreen: boolean;
29
+ video: boolean;
30
+ audio: boolean;
31
+ }
32
+ export interface BloudStreamState {
33
+ video: boolean;
34
+ audio: boolean;
35
+ }
36
+ export interface BloudUnPubEvent {
37
+ userId: string;
38
+ streamId: string;
39
+ isScreen: boolean;
40
+ }
25
41
  export declare function attachBRTCEvent(boomCore: BoomCore, bmStreamVm: BMStreamModelVM, userVM: BMUserVM): void;
26
42
  declare type Observes = {
27
43
  [K in BCEvent]: BehaviorSubject<any>;
@@ -20,4 +20,4 @@ export declare function handleEvict(data: any, userVM: BMUserVM, bmStreamVm: BMS
20
20
  export declare function handleUpdateUser(data: any, userVM: BMUserVM, bmRoom: BMRoom, bmStreamVm: BMStreamModelVM, observes: any): void;
21
21
  export declare function updateBMUser(allUsers: Map<string, BCUser>, bmUser: BMUser, userVm: BMUserVM): void;
22
22
  export declare const handleUserRejoined: any;
23
- export declare function handleMoveUserRoom(bmRoom: BMRoom, userVM: BMUserVM, data: any, observes: any): void;
23
+ export declare function handleMoveUserRoom(bmRoom: BMRoom, userVM: BMUserVM, data: any, observes: any): Promise<void>;
@@ -9,6 +9,12 @@ import BMRoom from "../BMRoom/BMRoom";
9
9
  import BMUserVM from "../BMUser/BMUserVM";
10
10
  import BMStreamModelVM from "../BMStream/BMStreamModelVM";
11
11
  export declare function handleRoomConnected(data: any, bmRoom: BMRoom, userVM: BMUserVM, observes: any, shouldNotification?: boolean): Promise<void>;
12
+ export declare function handleInitJoinRoomUsers(bmRoom: BMRoom): void;
12
13
  export declare function handleRoomUpdated(data: any, bmRoom: BMRoom): void;
13
14
  export declare function handleInitRoomInfo(data: any, bmRoom: BMRoom): Promise<void>;
14
15
  export declare function handleRoomSync(data: any, bmRoom: BMRoom, userVm: BMUserVM, bmStreamVm: BMStreamModelVM): Promise<void>;
16
+ export declare function handleBrtcRoomReconnecting(data: any, bmRoom: BMRoom, observes: any): void;
17
+ export declare function handleBrtcRoomReconnected(data: any, bmRoom: BMRoom, observes: any): void;
18
+ export declare function handleBloudRoomReconnecting(data: any, bmRoom: BMRoom, observes: any): void;
19
+ export declare function handleBloudRoomReconnected(data: any, bmRoom: BMRoom, observes: any): Promise<void>;
20
+ export declare function handleBloudRoomSync(data: any, userVM: BMUserVM, bmRoom: BMRoom, bmStreamVm: BMStreamModelVM, observes: any): Promise<void>;
@@ -5,3 +5,4 @@ import BoomCore from "@hysc/core";
5
5
  export declare function handleBRTCRoomError(data: any, bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, observes: any): Promise<void>;
6
6
  export declare function reconnectBloud(boomCore: BoomCore, observes: any, data: any): Promise<unknown>;
7
7
  export declare function reconnectBRTCShareWS(boomCore: BoomCore): Promise<unknown>;
8
+ export declare function handleBloudError(bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, data: any, observes: any): Promise<void>;
@@ -8,9 +8,32 @@
8
8
  import BMStreamModel from "../BMStream/BMStreamModel";
9
9
  import { SingleRemoteStream } from "../type";
10
10
  import BMStreamModelVM from "../BMStream/BMStreamModelVM";
11
+ import { BloudStreamEventState, BloudUnPubEvent } from "./attachEvents";
12
+ import BMRoom from "../BMRoom/BMRoom";
13
+ export declare const shareFailedProcessQueue: Map<string, SingleRemoteStream>;
11
14
  export declare function handleUpdateStreamModelWithStream(stream: SingleRemoteStream, bmStreamVm: BMStreamModelVM): BMStreamModel | undefined;
12
15
  export declare function checkStreamIsNormal(streamModel: BMStreamModel | undefined): void;
13
16
  export declare function handleStreamUpdated(event: any, bmStreamVm: BMStreamModelVM, observes: any): void;
14
17
  export declare function addStreamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
15
18
  export declare function removeSteamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
16
19
  export declare function getStreamFromBrtcStreamMap(remoteStream: SingleRemoteStream): import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default | undefined;
20
+ export declare function handleBloudReconnectStreamEvent(bmStreamVm: BMStreamModelVM): void;
21
+ /**
22
+ * bloud brtc 断网重连的处理
23
+ * networkState 记录网络状态
24
+ * handleReconnectedStream 防抖函数,当双方有连接断网重连之后,会执行这个方法
25
+ *
26
+ * brtc 的sync-room 之后,本地会把所有的stream都销毁,清空,然后统一走一遍查询处理
27
+ * 绑定新的stream,这么做简单粗暴处理所有的brtc流,防止流重复问题i
28
+ */
29
+ export declare const networkState: {
30
+ bloud: boolean;
31
+ brtc: boolean;
32
+ };
33
+ export declare const handleReconnectedStream: any;
34
+ export declare function handleStreamPublished(event: any, bmStreamVm: BMStreamModelVM, bmRoom: BMRoom, observes: any): void;
35
+ export declare function handleBloudStreamPublished(data: any, bmStreamVm: BMStreamModelVM, observes: any): void;
36
+ export declare function handleBloudStreamPubAUpdate(data: BloudStreamEventState, bmStreamVm: BMStreamModelVM): void;
37
+ export declare function handleBloudStreamUnPublished(data: any, bmStreamVm: BMStreamModelVM, observes: any): void;
38
+ export declare function handleBloudStreamUnpublish(data: BloudUnPubEvent, bmStreamVm: BMStreamModelVM): void;
39
+ export declare function handleShareStreamFailed(bmRoom: BMRoom, bmStreamVm: BMStreamModelVM): void;
@@ -116,7 +116,5 @@ export interface CustomStats {
116
116
  raiseHandEnable: number;
117
117
  joinCueVoice: number;
118
118
  autoMute: number;
119
- allUserReceiveJoinLeaveMessages: number;
120
- userJoinMasterVoice: number;
121
119
  }
122
120
  export declare type PartialCustomStats = Partial<CustomStats>;
@@ -58,4 +58,5 @@ declare class Pqueue {
58
58
  onEmpty(): Promise<void>;
59
59
  }
60
60
  export declare const streamPullQueue: Pqueue;
61
+ export declare const eventQueue: Pqueue;
61
62
  export {};