@hysc/meeting 5.0.9 → 5.0.12

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.
@@ -7,7 +7,7 @@ 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
- import BMStreamModel from '../BMStream/BMStreamModel';
10
+ import BMStreamModel, { ConnectErrorMessage } from '../BMStream/BMStreamModel';
11
11
  import BMUser from '../BMUser/BMUser';
12
12
  import BMLiveVM from './BMLiveVM';
13
13
  import SingletonQueue, { PullItem } from "../SingletonQueue/SingletonQueue";
@@ -42,6 +42,11 @@ export default class BMRoom {
42
42
  * brtc断网重连的时候,所有的订阅和播放相关的处理,都不需要
43
43
  */
44
44
  BRTCConnectFailed: boolean;
45
+ /**
46
+ * 本端推流失败次数
47
+ */
48
+ pubFailedNum: number;
49
+ streamConnectedErrorQueue: Array<ConnectErrorMessage>;
45
50
  /**
46
51
  * 会议模式
47
52
  * 1 会议
@@ -75,11 +80,25 @@ export default class BMRoom {
75
80
  bloudWSReconnectWatcher: Subject<boolean>;
76
81
  netConnecting: boolean;
77
82
  netConnectingWatcher: Subject<boolean>;
83
+ hasSyncPermission: boolean;
78
84
  /**
79
85
  * 会控底层相关处理, 比如是否取消自动拉流
80
86
  */
81
87
  private meetingControlOptions;
82
88
  forceId: string;
89
+ /**
90
+ * bloud brtc 断网重连的处理
91
+ * networkState 记录网络状态
92
+ * handleReconnectedStream 防抖函数,当双方有连接断网重连之后,会执行这个方法
93
+ *
94
+ * brtc 的sync-room 之后,本地会把所有的stream都销毁,清空,然后统一走一遍查询处理
95
+ * 绑定新的stream,这么做简单粗暴处理所有的brtc流,防止流重复问题i
96
+ */
97
+ networkState: {
98
+ bloud: boolean;
99
+ brtc: boolean;
100
+ };
101
+ brtcNetEnableWatcher: Subject<boolean>;
83
102
  get isSingleColumns(): boolean;
84
103
  /**
85
104
  * 传递信息用的,主要是用于message信令往上层业务发送消息
@@ -542,7 +561,7 @@ export default class BMRoom {
542
561
  */
543
562
  checkUserHasMaster(userId: string): boolean;
544
563
  changeNickName(userId: string, nickName: string): Promise<any>;
545
- handleQueueTask(streamModel: BMStreamModel, noPlayChanged?: boolean): Promise<void>;
564
+ handleQueueTask: (streamModel: BMStreamModel, noPlayChanged?: boolean) => Promise<void>;
546
565
  handleStreamTask(streamModel: BMStreamModel, noPlayChanged?: boolean): Promise<void>;
547
566
  /**
548
567
  * 处理拉流的逻辑
@@ -640,6 +659,7 @@ export default class BMRoom {
640
659
  */
641
660
  handleResetOtherStreamStatus(): void;
642
661
  addUser2Queue(pullItem: PullItem): Promise<void>;
662
+ processUser: (uIds: Map<string, PullItem>) => Promise<void>;
643
663
  queueProcessor: import("lodash-es").DebouncedFunc<(uIds: Map<string, PullItem>) => Promise<void>>;
644
664
  queryBrtcStreams(uids: string[]): Promise<any>;
645
665
  handleAddStreams(streams: SingleRemoteStream[]): void;
@@ -24,17 +24,6 @@ import BMSpeaker from './BMSpeaker';
24
24
  import { ShareMediaOptions } from "@hysc/core/esm/BoomCore/BCClient/BCClient";
25
25
  import { getHTMLMediaStreamOptions, Result, getMediaStreamInfo } from "./getHTMLMediaStreamOptions";
26
26
  export declare function transShareScreen2User(userId: string): string;
27
- export declare const pubFailedStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
28
- /**
29
- * 全量的brtc流记录,把所有brtc用户推的流都做记录
30
- * stream-added 的时候添加
31
- * stream-removed 的时候删除
32
- * mute/unmute-video/audio 的时候更新流
33
- * 当用户进来的时候,去查看这个流对象,如果流存在,就给这个人添加流
34
- *
35
- */
36
- export declare const BRTCStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
37
- export declare const BRTCShareStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
38
27
  export default class BMStreamModelVM {
39
28
  streamModels: Map<string, BMStreamModel>;
40
29
  /**
@@ -242,12 +231,5 @@ export default class BMStreamModelVM {
242
231
  */
243
232
  getHTMLMediaStream: typeof getHTMLMediaStreamOptions;
244
233
  getMediaStream: typeof getMediaStreamInfo;
245
- /**
246
- * brtc断网重连之后,不知道在断网期间有那些用户取消了推流,
247
- * 然后如果是brtc的ws没重连上,然后自己走的重新入会重连的话,就会导致
248
- * 可能存在本地的流有一部分可能是不存在的流了,这个方法就是在重连入会之后
249
- * 把所有远端流清空
250
- */
251
- resetAllRemoteStream(): void;
252
234
  clearCache(): void;
253
235
  }
@@ -83,7 +83,8 @@ export default class BMUserVM {
83
83
  * 刚加入房间时初始化人数
84
84
  */
85
85
  initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
86
- addBcUsers(users: Map<string, BCUser>): void;
86
+ addBcUsersMap(users: Map<string, BCUser>, forceGetStream?: boolean): void;
87
+ addBCUser: (bcUser: BCUser, forceGetStream?: boolean) => BMUser | null;
87
88
  /**
88
89
  * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
89
90
  * @param userId
@@ -39,7 +39,6 @@ export interface BloudUnPubEvent {
39
39
  streamId: string;
40
40
  isScreen: boolean;
41
41
  }
42
- export declare function attachBRTCEvent(boomCore: BoomCore, bmStreamVm: BMStreamModelVM, userVM: BMUserVM): void;
43
42
  declare type Observes = {
44
43
  [K in BCEvent]: BehaviorSubject<any>;
45
44
  };
@@ -4,6 +4,6 @@ import BMStreamModelVM from "../BMStream/BMStreamModelVM";
4
4
  import BoomCore from "@hysc/core";
5
5
  export declare const NETWORK_ERROR_QUEUE: Set<(...args: any) => void>;
6
6
  export declare function handleBRTCRoomError(data: any, bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, observes: any): Promise<void>;
7
- export declare function reconnectBloud(boomCore: BoomCore, observes: any, data: any): Promise<unknown>;
7
+ export declare function reconnectBloud(bmRoom: BMRoom, boomCore: BoomCore, observes: any, data: any): Promise<unknown>;
8
8
  export declare function reconnectBRTCShareWS(boomCore: BoomCore): Promise<unknown>;
9
9
  export declare function handleBloudError(bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, data: any, observes: any): Promise<void>;
@@ -13,22 +13,7 @@ import BMRoom from "../BMRoom/BMRoom";
13
13
  export declare const shareFailedProcessQueue: Map<string, SingleRemoteStream>;
14
14
  export declare function checkStreamIsNormal(streamModel: BMStreamModel | undefined): void;
15
15
  export declare function handleStreamUpdated(event: any, bmStreamVm: BMStreamModelVM, observes: any): void;
16
- export declare function addStreamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
17
- export declare function removeSteamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
18
- export declare function getStreamFromBrtcStreamMap(remoteStream: SingleRemoteStream): import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default | undefined;
19
16
  export declare function handleBloudReconnectStreamEvent(bmStreamVm: BMStreamModelVM): void;
20
- /**
21
- * bloud brtc 断网重连的处理
22
- * networkState 记录网络状态
23
- * handleReconnectedStream 防抖函数,当双方有连接断网重连之后,会执行这个方法
24
- *
25
- * brtc 的sync-room 之后,本地会把所有的stream都销毁,清空,然后统一走一遍查询处理
26
- * 绑定新的stream,这么做简单粗暴处理所有的brtc流,防止流重复问题i
27
- */
28
- export declare const networkState: {
29
- bloud: boolean;
30
- brtc: boolean;
31
- };
32
17
  export declare const handleReconnectedStream: import("lodash-es").DebouncedFunc<(bmRoom: BMRoom) => void>;
33
18
  export declare function handleStreamPublished(event: any, bmStreamVm: BMStreamModelVM, bmRoom: BMRoom, observes: any): void;
34
19
  export declare function handleBloudStreamPublished(data: any, bmStreamVm: BMStreamModelVM, observes: any): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hysc/meeting",
3
- "version": "5.0.9",
3
+ "version": "5.0.12",
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": "5.0.7",
17
+ "@hysc/core": "5.0.10",
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": "5.0.7"
26
+ "@hysc/core": "5.0.10"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/lodash-es": "^4.17.6"
@@ -7,7 +7,7 @@ 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
- import BMStreamModel from '../BMStream/BMStreamModel';
10
+ import BMStreamModel, { ConnectErrorMessage } from '../BMStream/BMStreamModel';
11
11
  import BMUser from '../BMUser/BMUser';
12
12
  import BMLiveVM from './BMLiveVM';
13
13
  import SingletonQueue, { PullItem } from "../SingletonQueue/SingletonQueue";
@@ -42,6 +42,11 @@ export default class BMRoom {
42
42
  * brtc断网重连的时候,所有的订阅和播放相关的处理,都不需要
43
43
  */
44
44
  BRTCConnectFailed: boolean;
45
+ /**
46
+ * 本端推流失败次数
47
+ */
48
+ pubFailedNum: number;
49
+ streamConnectedErrorQueue: Array<ConnectErrorMessage>;
45
50
  /**
46
51
  * 会议模式
47
52
  * 1 会议
@@ -75,11 +80,25 @@ export default class BMRoom {
75
80
  bloudWSReconnectWatcher: Subject<boolean>;
76
81
  netConnecting: boolean;
77
82
  netConnectingWatcher: Subject<boolean>;
83
+ hasSyncPermission: boolean;
78
84
  /**
79
85
  * 会控底层相关处理, 比如是否取消自动拉流
80
86
  */
81
87
  private meetingControlOptions;
82
88
  forceId: string;
89
+ /**
90
+ * bloud brtc 断网重连的处理
91
+ * networkState 记录网络状态
92
+ * handleReconnectedStream 防抖函数,当双方有连接断网重连之后,会执行这个方法
93
+ *
94
+ * brtc 的sync-room 之后,本地会把所有的stream都销毁,清空,然后统一走一遍查询处理
95
+ * 绑定新的stream,这么做简单粗暴处理所有的brtc流,防止流重复问题i
96
+ */
97
+ networkState: {
98
+ bloud: boolean;
99
+ brtc: boolean;
100
+ };
101
+ brtcNetEnableWatcher: Subject<boolean>;
83
102
  get isSingleColumns(): boolean;
84
103
  /**
85
104
  * 传递信息用的,主要是用于message信令往上层业务发送消息
@@ -542,7 +561,7 @@ export default class BMRoom {
542
561
  */
543
562
  checkUserHasMaster(userId: string): boolean;
544
563
  changeNickName(userId: string, nickName: string): Promise<any>;
545
- handleQueueTask(streamModel: BMStreamModel, noPlayChanged?: boolean): Promise<void>;
564
+ handleQueueTask: (streamModel: BMStreamModel, noPlayChanged?: boolean) => Promise<void>;
546
565
  handleStreamTask(streamModel: BMStreamModel, noPlayChanged?: boolean): Promise<void>;
547
566
  /**
548
567
  * 处理拉流的逻辑
@@ -640,6 +659,7 @@ export default class BMRoom {
640
659
  */
641
660
  handleResetOtherStreamStatus(): void;
642
661
  addUser2Queue(pullItem: PullItem): Promise<void>;
662
+ processUser: (uIds: Map<string, PullItem>) => Promise<void>;
643
663
  queueProcessor: any;
644
664
  queryBrtcStreams(uids: string[]): Promise<any>;
645
665
  handleAddStreams(streams: SingleRemoteStream[]): void;
@@ -24,17 +24,6 @@ import BMSpeaker from './BMSpeaker';
24
24
  import { ShareMediaOptions } from "@hysc/core/esm/BoomCore/BCClient/BCClient";
25
25
  import { getHTMLMediaStreamOptions, Result, getMediaStreamInfo } from "./getHTMLMediaStreamOptions";
26
26
  export declare function transShareScreen2User(userId: string): string;
27
- export declare const pubFailedStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
28
- /**
29
- * 全量的brtc流记录,把所有brtc用户推的流都做记录
30
- * stream-added 的时候添加
31
- * stream-removed 的时候删除
32
- * mute/unmute-video/audio 的时候更新流
33
- * 当用户进来的时候,去查看这个流对象,如果流存在,就给这个人添加流
34
- *
35
- */
36
- export declare const BRTCStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
37
- export declare const BRTCShareStreamMap: Map<string, import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
38
27
  export default class BMStreamModelVM {
39
28
  streamModels: Map<string, BMStreamModel>;
40
29
  /**
@@ -242,12 +231,5 @@ export default class BMStreamModelVM {
242
231
  */
243
232
  getHTMLMediaStream: typeof getHTMLMediaStreamOptions;
244
233
  getMediaStream: typeof getMediaStreamInfo;
245
- /**
246
- * brtc断网重连之后,不知道在断网期间有那些用户取消了推流,
247
- * 然后如果是brtc的ws没重连上,然后自己走的重新入会重连的话,就会导致
248
- * 可能存在本地的流有一部分可能是不存在的流了,这个方法就是在重连入会之后
249
- * 把所有远端流清空
250
- */
251
- resetAllRemoteStream(): void;
252
234
  clearCache(): void;
253
235
  }
@@ -83,7 +83,8 @@ export default class BMUserVM {
83
83
  * 刚加入房间时初始化人数
84
84
  */
85
85
  initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
86
- addBcUsers(users: Map<string, BCUser>): void;
86
+ addBcUsersMap(users: Map<string, BCUser>, forceGetStream?: boolean): void;
87
+ addBCUser: (bcUser: BCUser, forceGetStream?: boolean) => BMUser | null;
87
88
  /**
88
89
  * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
89
90
  * @param userId
@@ -39,7 +39,6 @@ export interface BloudUnPubEvent {
39
39
  streamId: string;
40
40
  isScreen: boolean;
41
41
  }
42
- export declare function attachBRTCEvent(boomCore: BoomCore, bmStreamVm: BMStreamModelVM, userVM: BMUserVM): void;
43
42
  declare type Observes = {
44
43
  [K in BCEvent]: BehaviorSubject<any>;
45
44
  };
@@ -4,6 +4,6 @@ import BMStreamModelVM from "../BMStream/BMStreamModelVM";
4
4
  import BoomCore from "@hysc/core";
5
5
  export declare const NETWORK_ERROR_QUEUE: Set<(...args: any) => void>;
6
6
  export declare function handleBRTCRoomError(data: any, bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, observes: any): Promise<void>;
7
- export declare function reconnectBloud(boomCore: BoomCore, observes: any, data: any): Promise<unknown>;
7
+ export declare function reconnectBloud(bmRoom: BMRoom, boomCore: BoomCore, observes: any, data: any): Promise<unknown>;
8
8
  export declare function reconnectBRTCShareWS(boomCore: BoomCore): Promise<unknown>;
9
9
  export declare function handleBloudError(bmRoom: BMRoom, boomCore: BCClient, bmStreamVm: BMStreamModelVM, data: any, observes: any): Promise<void>;
@@ -13,22 +13,7 @@ import BMRoom from "../BMRoom/BMRoom";
13
13
  export declare const shareFailedProcessQueue: Map<string, SingleRemoteStream>;
14
14
  export declare function checkStreamIsNormal(streamModel: BMStreamModel | undefined): void;
15
15
  export declare function handleStreamUpdated(event: any, bmStreamVm: BMStreamModelVM, observes: any): void;
16
- export declare function addStreamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
17
- export declare function removeSteamToBrtcStreamMap(remoteStream: SingleRemoteStream): void;
18
- export declare function getStreamFromBrtcStreamMap(remoteStream: SingleRemoteStream): import("@hysc/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default | undefined;
19
16
  export declare function handleBloudReconnectStreamEvent(bmStreamVm: BMStreamModelVM): void;
20
- /**
21
- * bloud brtc 断网重连的处理
22
- * networkState 记录网络状态
23
- * handleReconnectedStream 防抖函数,当双方有连接断网重连之后,会执行这个方法
24
- *
25
- * brtc 的sync-room 之后,本地会把所有的stream都销毁,清空,然后统一走一遍查询处理
26
- * 绑定新的stream,这么做简单粗暴处理所有的brtc流,防止流重复问题i
27
- */
28
- export declare const networkState: {
29
- bloud: boolean;
30
- brtc: boolean;
31
- };
32
17
  export declare const handleReconnectedStream: any;
33
18
  export declare function handleStreamPublished(event: any, bmStreamVm: BMStreamModelVM, bmRoom: BMRoom, observes: any): void;
34
19
  export declare function handleBloudStreamPublished(data: any, bmStreamVm: BMStreamModelVM, observes: any): void;