agora-rte-sdk 1.1.5 → 2.0.0-beta
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/lib/configs/index.d.ts +67 -0
- package/lib/core/decorator/bound/index.d.ts +11 -0
- package/lib/core/decorator/handlers/log-handler.d.ts +2 -0
- package/lib/core/decorator/index.d.ts +4 -0
- package/lib/core/decorator/lodash/index.d.ts +13 -0
- package/lib/core/decorator/log/index.d.ts +23 -0
- package/lib/core/decorator/log/log-serializer.d.ts +7 -0
- package/lib/core/decorator/log/logger.d.ts +2 -0
- package/lib/core/decorator/proxy.d.ts +8 -0
- package/lib/core/decorator/type.d.ts +18 -0
- package/lib/core/decorator/utils.d.ts +2 -0
- package/lib/core/engine/index.d.ts +25 -0
- package/lib/core/logger/db.d.ts +14 -3
- package/lib/core/logger/index.d.ts +11 -16
- package/lib/core/logger/log.worker.d.ts +1 -2
- package/lib/core/logger/mutex.d.ts +5 -0
- package/lib/core/media/control.d.ts +39 -0
- package/lib/core/media/track.d.ts +52 -0
- package/lib/core/processor/channel-msg/data.d.ts +26 -0
- package/lib/core/processor/channel-msg/handler.d.ts +78 -0
- package/lib/core/processor/channel-msg/struct.d.ts +108 -0
- package/lib/core/processor/channel-msg/synchronizer.d.ts +54 -0
- package/lib/core/rtc/adapter/base.d.ts +69 -0
- package/lib/core/rtc/adapter/electron/device.d.ts +38 -0
- package/lib/core/rtc/adapter/electron/index.d.ts +84 -0
- package/lib/core/rtc/adapter/electron/stats.d.ts +14 -0
- package/lib/core/rtc/adapter/electron/thread.d.ts +18 -0
- package/lib/core/rtc/adapter/index.d.ts +18 -0
- package/lib/core/rtc/adapter/web/client.d.ts +49 -0
- package/lib/core/rtc/adapter/web/device.d.ts +37 -0
- package/lib/core/rtc/adapter/web/index.d.ts +77 -0
- package/lib/core/rtc/adapter/web/player.d.ts +19 -0
- package/lib/core/rtc/adapter/web/stats.d.ts +11 -0
- package/lib/core/rtc/adapter/web/thread.d.ts +69 -0
- package/lib/core/rtc/canvas.d.ts +15 -0
- package/lib/core/rtc/channel.d.ts +24 -0
- package/lib/core/rtc/index.d.ts +40 -0
- package/lib/core/rtc/type.d.ts +94 -0
- package/lib/core/rtm/index.d.ts +29 -35
- package/lib/core/schedule/index.d.ts +2 -0
- package/lib/core/schedule/scheduler.d.ts +21 -0
- package/lib/core/schedule/task.d.ts +35 -0
- package/lib/core/services/api.d.ts +53 -0
- package/lib/core/services/base.d.ts +16 -28
- package/lib/core/services/log.d.ts +7 -0
- package/lib/core/services/oss.d.ts +7 -0
- package/lib/core/services/{report-service.d.ts → report.d.ts} +4 -27
- package/lib/core/utils/decorator.d.ts +2 -0
- package/lib/core/utils/error.d.ts +64 -0
- package/lib/core/utils/events.d.ts +8 -0
- package/lib/core/utils/http-client.d.ts +1 -1
- package/lib/core/utils/thread.d.ts +10 -0
- package/lib/core/utils/types.d.ts +8 -0
- package/lib/core/utils/utils.d.ts +17 -0
- package/lib/index.d.ts +29 -22
- package/lib/index.js +2 -76
- package/lib/index.js.LICENSE.txt +90 -0
- package/lib/index.worker.js +1 -0
- package/lib/scene/index.d.ts +60 -0
- package/lib/type.d.ts +55 -0
- package/lib/user/index.d.ts +57 -0
- package/package.json +36 -6
- package/lib/core/index.d.ts +0 -1
- package/lib/core/logger/edu-sdk-logger.d.ts +0 -15
- package/lib/core/logger/interfaces/index.d.ts +0 -4
- package/lib/core/media-service/electron/index.d.ts +0 -239
- package/lib/core/media-service/index.d.ts +0 -75
- package/lib/core/media-service/interfaces/index.d.ts +0 -318
- package/lib/core/media-service/renderer/index.d.ts +0 -73
- package/lib/core/media-service/utils.d.ts +0 -16
- package/lib/core/media-service/web/coordinator.d.ts +0 -55
- package/lib/core/media-service/web/index.d.ts +0 -157
- package/lib/core/rtm/constants.d.ts +0 -32
- package/lib/core/rtm/message-serializer.d.ts +0 -45
- package/lib/core/services/edu-api.d.ts +0 -178
- package/lib/core/services/interface.d.ts +0 -122
- package/lib/core/services/log-upload.d.ts +0 -22
- package/lib/core/utils/fetch.d.ts +0 -2
- package/lib/core/utils/generic-error.d.ts +0 -11
- package/lib/interfaces/index.d.ts +0 -526
- package/lib/manager/index.d.ts +0 -50
- package/lib/room/edu-classroom-data-controller.d.ts +0 -113
- package/lib/room/edu-classroom-manager.d.ts +0 -56
- package/lib/room/types.d.ts +0 -108
- package/lib/user/edu-user-service.d.ts +0 -98
- package/lib/utils/syntax.d.ts +0 -3
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { AREAS } from 'agora-rtc-sdk-ng';
|
|
2
|
+
import { RtmStatusCode } from 'agora-rtm-sdk';
|
|
3
|
+
import { AGRtcConfig } from '../core/rtc/adapter';
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
isElectron: boolean;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export declare enum AgoraRteLogLevel {
|
|
10
|
+
OFF = 0,
|
|
11
|
+
ERROR = 1,
|
|
12
|
+
WARN = 2,
|
|
13
|
+
INFO = 3,
|
|
14
|
+
DEBUG = 4,
|
|
15
|
+
VERBOSE = 5
|
|
16
|
+
}
|
|
17
|
+
export declare enum AgoraRteRuntimePlatform {
|
|
18
|
+
Electron = 0,
|
|
19
|
+
Web = 1
|
|
20
|
+
}
|
|
21
|
+
export interface AgoraRteServiceConfig {
|
|
22
|
+
host?: string;
|
|
23
|
+
pathPrefix?: string;
|
|
24
|
+
headers?: Record<string, string | number>;
|
|
25
|
+
}
|
|
26
|
+
export declare enum RteLanguage {
|
|
27
|
+
zh = "zh",
|
|
28
|
+
en = "en"
|
|
29
|
+
}
|
|
30
|
+
export declare enum AgoraRegion {
|
|
31
|
+
CN = "CN",
|
|
32
|
+
AP = "AP",
|
|
33
|
+
EU = "EU",
|
|
34
|
+
NA = "NA"
|
|
35
|
+
}
|
|
36
|
+
export declare type AgoraComponentRegion = 'AREA_GLOBAL' | 'AREA_AS' | 'AREA_EUR' | 'AREA_NA';
|
|
37
|
+
export interface AgoraRteOptions {
|
|
38
|
+
language?: RteLanguage;
|
|
39
|
+
region?: AgoraRegion;
|
|
40
|
+
rtcConfigs?: Partial<AGRtcConfig>;
|
|
41
|
+
}
|
|
42
|
+
export declare class AgoraRteEngineConfig {
|
|
43
|
+
private static _config?;
|
|
44
|
+
static get shared(): AgoraRteEngineConfig;
|
|
45
|
+
static setConfig(config: AgoraRteEngineConfig): void;
|
|
46
|
+
appId: string;
|
|
47
|
+
service: AgoraRteServiceConfig;
|
|
48
|
+
rtcConfigs: AGRtcConfig;
|
|
49
|
+
logFilePath?: string;
|
|
50
|
+
static logLevel: AgoraRteLogLevel;
|
|
51
|
+
static readonly platform: AgoraRteRuntimePlatform;
|
|
52
|
+
userId: string;
|
|
53
|
+
token: string;
|
|
54
|
+
ignoreUrlRegionPrefix: boolean;
|
|
55
|
+
language: RteLanguage;
|
|
56
|
+
debugI18n: boolean;
|
|
57
|
+
region: AgoraRegion;
|
|
58
|
+
private _rtcRegion?;
|
|
59
|
+
private _rtmRegion?;
|
|
60
|
+
SCENE_JOIN_RETRY_ATTEMPTS: number;
|
|
61
|
+
constructor(appId: string, opts?: AgoraRteOptions);
|
|
62
|
+
get rtcRegion(): AREAS;
|
|
63
|
+
get rtmRegion(): RtmStatusCode.AreaCode;
|
|
64
|
+
setRtcRegion(area: AgoraComponentRegion): void;
|
|
65
|
+
setRtmRegion(area: AgoraComponentRegion): void;
|
|
66
|
+
static get version(): string;
|
|
67
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const bound: (proto: any, propertyName: string, descriptor: PropertyDescriptor) => {
|
|
2
|
+
configurable: boolean;
|
|
3
|
+
enumerable: boolean;
|
|
4
|
+
get(this: {
|
|
5
|
+
__cacheMap: WeakMap<Object, any>;
|
|
6
|
+
}): any;
|
|
7
|
+
set(this: {
|
|
8
|
+
__cacheMap: WeakMap<Object, any>;
|
|
9
|
+
}, v: any): void;
|
|
10
|
+
};
|
|
11
|
+
export { bound };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DebounceSettings, ThrottleSettings } from 'lodash';
|
|
2
|
+
export declare const Lodash: {
|
|
3
|
+
debounced: (wait?: number | undefined, options?: DebounceSettings | undefined) => (proto: any, propertyName: string, descriptor: PropertyDescriptor) => {
|
|
4
|
+
configurable: boolean;
|
|
5
|
+
enumerable: boolean;
|
|
6
|
+
get(): import("lodash").DebouncedFunc<any>;
|
|
7
|
+
};
|
|
8
|
+
throttled: (wait?: number | undefined, options?: ThrottleSettings | undefined) => (proto: any, propertyName: string, descriptor: PropertyDescriptor) => {
|
|
9
|
+
configurable: boolean;
|
|
10
|
+
enumerable: boolean;
|
|
11
|
+
get(): import("lodash").DebouncedFunc<any>;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AgoraRteLogLevel } from '../../../configs';
|
|
2
|
+
export declare const Log: {
|
|
3
|
+
info: (proto: any, propertyName: string, descriptor: PropertyDescriptor) => {
|
|
4
|
+
configurable: boolean;
|
|
5
|
+
enumerable: boolean;
|
|
6
|
+
get(): (this: any, ...args: any[]) => any;
|
|
7
|
+
};
|
|
8
|
+
warn: (proto: any, propertyName: string, descriptor: PropertyDescriptor) => {
|
|
9
|
+
configurable: boolean;
|
|
10
|
+
enumerable: boolean;
|
|
11
|
+
get(): (this: any, ...args: any[]) => any;
|
|
12
|
+
};
|
|
13
|
+
error: (proto: any, propertyName: string, descriptor: PropertyDescriptor) => {
|
|
14
|
+
configurable: boolean;
|
|
15
|
+
enumerable: boolean;
|
|
16
|
+
get(): (this: any, ...args: any[]) => any;
|
|
17
|
+
};
|
|
18
|
+
attach: ({ level, proxyMethods, }: {
|
|
19
|
+
level?: AgoraRteLogLevel | undefined;
|
|
20
|
+
proxyMethods?: boolean | undefined;
|
|
21
|
+
}) => <T extends new (...args: any[]) => {}>(constructor: T) => T;
|
|
22
|
+
silence: (proto: any, propertyName: string) => void;
|
|
23
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InvocationEvent, InvocationHandler } from './type';
|
|
2
|
+
export declare const proxyMethod: (method: Function, proto: any, propertyName: string, handler: InvocationHandler, context: InvocationEvent['context']) => (this: any, ...args: any[]) => any;
|
|
3
|
+
export declare const extendConstructor: (constructor: any, handler: InvocationHandler, context: InvocationEvent['context'], extendProps?: any, proxyMethods?: boolean | undefined) => {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
[x: string]: any;
|
|
6
|
+
};
|
|
7
|
+
[x: string]: any;
|
|
8
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum InvocationEventType {
|
|
2
|
+
pre = 0,
|
|
3
|
+
post = 1
|
|
4
|
+
}
|
|
5
|
+
export declare type InvocationEvent = {
|
|
6
|
+
type: InvocationEventType;
|
|
7
|
+
context: Record<string, any>;
|
|
8
|
+
class: string;
|
|
9
|
+
method: string;
|
|
10
|
+
arguments?: any[];
|
|
11
|
+
return?: any;
|
|
12
|
+
error?: Error;
|
|
13
|
+
};
|
|
14
|
+
export declare type InvocationHandler = (event: InvocationEvent) => void;
|
|
15
|
+
export declare type AnyFunction = (...args: any) => any;
|
|
16
|
+
export declare namespace Injectable {
|
|
17
|
+
type Logger = Pick<Console, 'info' | 'warn' | 'error' | 'debug'>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AGEventEmitter } from '../utils/events';
|
|
2
|
+
import { AgoraRteEngineConfig } from '../../configs';
|
|
3
|
+
import { AgoraRteScene } from '../../scene';
|
|
4
|
+
import { AgoraMediaControl } from '../media/control';
|
|
5
|
+
import { AgoraRteService } from '../services/api';
|
|
6
|
+
export declare class AgoraRteEngine extends AGEventEmitter {
|
|
7
|
+
private _mediaControl;
|
|
8
|
+
private _apiService;
|
|
9
|
+
private _logService;
|
|
10
|
+
private _rtmManager;
|
|
11
|
+
private _rtcManager;
|
|
12
|
+
private static _engine?;
|
|
13
|
+
static get engine(): AgoraRteEngine;
|
|
14
|
+
constructor(config: AgoraRteEngineConfig);
|
|
15
|
+
static createWithConfig(config: AgoraRteEngineConfig): AgoraRteEngine;
|
|
16
|
+
static destroy(): void;
|
|
17
|
+
login(rtmToken: string, userId: string): Promise<void>;
|
|
18
|
+
logout(): void;
|
|
19
|
+
static getVersion(): string;
|
|
20
|
+
static getRtcVersion(): string;
|
|
21
|
+
createAgoraRteScene(sceneId: string): AgoraRteScene;
|
|
22
|
+
getAgoraMediaControl(): AgoraMediaControl;
|
|
23
|
+
getApiService(): AgoraRteService;
|
|
24
|
+
uploadSDKLogToAgoraService(roomId: string): Promise<void>;
|
|
25
|
+
}
|
package/lib/core/logger/db.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import Dexie, { Table } from 'dexie';
|
|
2
|
+
declare type Timestamp = number;
|
|
3
|
+
declare type LogSchema = {
|
|
4
|
+
content: string;
|
|
5
|
+
created_at: Timestamp;
|
|
6
|
+
timestamp: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class LoggerDB extends Dexie {
|
|
9
|
+
logs: Table<LogSchema, number>;
|
|
10
|
+
constructor();
|
|
11
|
+
openDatabase(): void;
|
|
12
|
+
}
|
|
13
|
+
export declare const db: LoggerDB;
|
|
14
|
+
export {};
|
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
export interface LogFileCollection {
|
|
2
|
+
electron?: File;
|
|
3
|
+
web?: File;
|
|
4
|
+
clean: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare class Logger {
|
|
7
|
+
thread: any;
|
|
8
|
+
constructor();
|
|
9
|
+
static logger: Logger;
|
|
8
10
|
static warn(...args: any[]): void;
|
|
9
11
|
static debug(...args: any[]): void;
|
|
10
12
|
static info(...args: any[]): void;
|
|
11
13
|
static error(...args: any[]): void;
|
|
12
14
|
private static log;
|
|
13
15
|
static originConsole: Console;
|
|
14
|
-
static
|
|
15
|
-
|
|
16
|
-
static init(appId: string): void;
|
|
17
|
-
private static debugLog;
|
|
18
|
-
static uploadElectronLog(roomId: any): Promise<any>;
|
|
19
|
-
static get ts(): number;
|
|
20
|
-
static enableUpload(roomUuid: string, isElectron: boolean): Promise<string>;
|
|
21
|
-
private uploadCefLog;
|
|
22
|
-
static uploadLog(roomId: string): Promise<any>;
|
|
16
|
+
static setupConsoleHijack(): void;
|
|
17
|
+
collectLogs(): Promise<LogFileCollection>;
|
|
23
18
|
}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export default _default;
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AGEventEmitter } from '../utils/events';
|
|
2
|
+
import { AGRtcManager } from '../rtc';
|
|
3
|
+
import { AgoraRteCameraVideoTrack, AgoraRteMicrophoneAudioTrack, AgoraRteScreenShareTrack } from './track';
|
|
4
|
+
import { AGRtcDeviceInfo, AGScreenShareDevice, BeautyEffect } from '../../';
|
|
5
|
+
export declare enum AgoraMediaControlEventType {
|
|
6
|
+
cameraListChanged = "camera-list-changed",
|
|
7
|
+
localAudioVolume = "local-audio-volume",
|
|
8
|
+
localAudioRecordingListChanged = "local-audio-recording-list-changed",
|
|
9
|
+
localVideoTrackChanged = "local-video-track-changed",
|
|
10
|
+
localAudioTrackChanged = "local-audio-track-changed",
|
|
11
|
+
trackStateChanged = "track-state-changed",
|
|
12
|
+
playbackDeviceListChanged = "playback-device-list-changed",
|
|
13
|
+
recordingDeviceListChanged = "recording-device-list-changed",
|
|
14
|
+
localAudioPlaybackVolumeIndicator = "start-test-audio-playback-volume-indicator",
|
|
15
|
+
audioPlaybackStateChanged = "audio-playback-state-changed"
|
|
16
|
+
}
|
|
17
|
+
export declare class AgoraMediaControl extends AGEventEmitter {
|
|
18
|
+
camera?: AgoraRteCameraVideoTrack;
|
|
19
|
+
microphone?: AgoraRteMicrophoneAudioTrack;
|
|
20
|
+
screen?: AgoraRteScreenShareTrack;
|
|
21
|
+
private _rtc;
|
|
22
|
+
constructor(rtc: AGRtcManager);
|
|
23
|
+
private _addEventListener;
|
|
24
|
+
createCameraVideoTrack(): AgoraRteCameraVideoTrack;
|
|
25
|
+
createMicrophoneAudioTrack(): AgoraRteMicrophoneAudioTrack;
|
|
26
|
+
createScreenShareTrack(): AgoraRteScreenShareTrack;
|
|
27
|
+
getVideoCameraList(): AGRtcDeviceInfo[];
|
|
28
|
+
getAudioRecordingList(): AGRtcDeviceInfo[];
|
|
29
|
+
getAudioPlaybackList(): AGRtcDeviceInfo[];
|
|
30
|
+
isScreenDeviceEnumerateSupported(): boolean;
|
|
31
|
+
hasScreenSharePermission(): boolean;
|
|
32
|
+
getWindowDevices(): AGScreenShareDevice[];
|
|
33
|
+
getDisplayDevices(): AGScreenShareDevice[];
|
|
34
|
+
startAudioRecordingDeviceTest(indicateInterval: number): number;
|
|
35
|
+
stopAudioRecordingDeviceTest(): number;
|
|
36
|
+
startAudioPlaybackDeviceTest(url: string): number;
|
|
37
|
+
stopAudioPlaybackDeviceTest(): number;
|
|
38
|
+
setBeautyEffectOptions(enable: boolean, options: BeautyEffect): number;
|
|
39
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AgoraRteMediaSourceState, AGScreenShareType } from '../..';
|
|
2
|
+
import { AGRtcManager } from '../rtc';
|
|
3
|
+
import { AgoraRtcVideoCanvas } from '../rtc/canvas';
|
|
4
|
+
export declare enum AgoraRteVideoSourceType {
|
|
5
|
+
None = 0,
|
|
6
|
+
Camera = 1,
|
|
7
|
+
ScreenShare = 2
|
|
8
|
+
}
|
|
9
|
+
export declare enum AgoraRteAudioSourceType {
|
|
10
|
+
None = 0,
|
|
11
|
+
Mic = 1,
|
|
12
|
+
Mix = 2
|
|
13
|
+
}
|
|
14
|
+
export declare enum AgoraRteMediaPublishState {
|
|
15
|
+
Unpublished = 0,
|
|
16
|
+
Published = 1
|
|
17
|
+
}
|
|
18
|
+
export declare abstract class AgoraRteMediaTrack {
|
|
19
|
+
videoSourceType: AgoraRteVideoSourceType;
|
|
20
|
+
audioSourceType: AgoraRteAudioSourceType;
|
|
21
|
+
protected rtc: AGRtcManager;
|
|
22
|
+
constructor(rtc: AGRtcManager, { videoSourceType, audioSourceType, }: {
|
|
23
|
+
videoSourceType?: AgoraRteVideoSourceType;
|
|
24
|
+
audioSourceType?: AgoraRteAudioSourceType;
|
|
25
|
+
});
|
|
26
|
+
abstract start(): number;
|
|
27
|
+
abstract stop(): number;
|
|
28
|
+
}
|
|
29
|
+
export declare class AgoraRteCameraVideoTrack extends AgoraRteMediaTrack {
|
|
30
|
+
state: AgoraRteMediaSourceState;
|
|
31
|
+
constructor(rtc: AGRtcManager);
|
|
32
|
+
setView(canvas: AgoraRtcVideoCanvas): void;
|
|
33
|
+
setDeviceId(deviceid: string): void;
|
|
34
|
+
setVideoEncoderConfiguration(): void;
|
|
35
|
+
start(): number;
|
|
36
|
+
stop(): number;
|
|
37
|
+
}
|
|
38
|
+
export declare class AgoraRteMicrophoneAudioTrack extends AgoraRteMediaTrack {
|
|
39
|
+
state: AgoraRteMediaSourceState;
|
|
40
|
+
constructor(rtc: AGRtcManager);
|
|
41
|
+
setRecordingDevice(deviceId: string): number;
|
|
42
|
+
setPlaybackDevice(deviceId: string): number;
|
|
43
|
+
start(): number;
|
|
44
|
+
stop(): number;
|
|
45
|
+
}
|
|
46
|
+
export declare class AgoraRteScreenShareTrack extends AgoraRteMediaTrack {
|
|
47
|
+
constructor(rtc: AGRtcManager);
|
|
48
|
+
setView(canvas: AgoraRtcVideoCanvas): void;
|
|
49
|
+
start(): number;
|
|
50
|
+
startWithParams(id?: string, type?: AGScreenShareType): number;
|
|
51
|
+
stop(): number;
|
|
52
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AgoraChatMessage, AgoraRoom, AgoraStream, AgoraUser } from './struct';
|
|
2
|
+
import Immutable from 'immutable';
|
|
3
|
+
export declare class AgoraRteSyncDataStore {
|
|
4
|
+
private _users;
|
|
5
|
+
get users(): Immutable.Map<string, AgoraUser>;
|
|
6
|
+
setUsers(users: Map<string, AgoraUser>): void;
|
|
7
|
+
setUser(key: string, user: AgoraUser): void;
|
|
8
|
+
deleteUser(key: string): void;
|
|
9
|
+
findUser(userUuid: string): AgoraUser | undefined;
|
|
10
|
+
private _roomProperties;
|
|
11
|
+
get roomProperties(): Immutable.Map<string, unknown>;
|
|
12
|
+
setRoomProperties(roomProperties: any): void;
|
|
13
|
+
private _streams;
|
|
14
|
+
get streams(): Immutable.Map<string, AgoraStream>;
|
|
15
|
+
setStreams(streams: Map<string, AgoraStream>): void;
|
|
16
|
+
findUserStreams(userUuid: string): AgoraStream[];
|
|
17
|
+
setStream(key: string, stream: AgoraStream): void;
|
|
18
|
+
deleteStream(key: string): void;
|
|
19
|
+
findStream(streamUuid: string): AgoraStream | undefined;
|
|
20
|
+
private _roomInfo;
|
|
21
|
+
get roomInfo(): Immutable.Map<unknown, unknown>;
|
|
22
|
+
setRoomInfo(roomInfo: AgoraRoom): void;
|
|
23
|
+
private readonly _messages;
|
|
24
|
+
get messages(): Immutable.List<AgoraChatMessage>;
|
|
25
|
+
addMessage(message: AgoraChatMessage): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { AgoraRteMessageHandleTask, AgoraRtePeerMessageHandleTask, AgoraRteSyncSnapshotData } from './struct';
|
|
2
|
+
import { AgoraRteSyncDataStore } from './data';
|
|
3
|
+
import { AGEventEmitter } from '../../utils/events';
|
|
4
|
+
import { Injectable } from '../../decorator/type';
|
|
5
|
+
export declare enum AgoraRteChannelMessageCmd {
|
|
6
|
+
Chat = 3,
|
|
7
|
+
RoomProperty = 4,
|
|
8
|
+
RoomProperties = 5,
|
|
9
|
+
UserInOut = 20,
|
|
10
|
+
UserInfo = 21,
|
|
11
|
+
UserProperty = 22,
|
|
12
|
+
UserProperties = 23,
|
|
13
|
+
StreamInOut = 40,
|
|
14
|
+
StreamsInOut = 41,
|
|
15
|
+
MessageExtension = 99
|
|
16
|
+
}
|
|
17
|
+
export declare enum AgoraRtePeerMessageCmd {
|
|
18
|
+
PeerChat = 1
|
|
19
|
+
}
|
|
20
|
+
export declare enum AgoraRteEventType {
|
|
21
|
+
SnapshotUpdated = "snapshot-updated",
|
|
22
|
+
ChatReceived = "chat-received",
|
|
23
|
+
UserAdded = "user-added",
|
|
24
|
+
UserUpdated = "user-updated",
|
|
25
|
+
UserRemoved = "user-removed",
|
|
26
|
+
RoomPropertyUpdated = "room-property-updated",
|
|
27
|
+
UserPropertyUpdated = "user-property-updated",
|
|
28
|
+
LocalStreamAdded = "local-stream-added",
|
|
29
|
+
LocalStreamUpdate = "local-stream-update",
|
|
30
|
+
LocalStreamRemove = "local-stream-removed",
|
|
31
|
+
RemoteStreamAdded = "remote-stream-added",
|
|
32
|
+
RemoteStreamUpdate = "remote-stream-update",
|
|
33
|
+
RemoteStreamRemove = "remote-stream-removed",
|
|
34
|
+
ChatUserMessage = "user-chat-message",
|
|
35
|
+
ChatRoomMessage = "room-chat-message",
|
|
36
|
+
NetworkStats = "network-stats",
|
|
37
|
+
LocalAudioVolume = "local-audio-volume",
|
|
38
|
+
AudioVolumes = "audio-volumes",
|
|
39
|
+
LocalVideoCameraListChanged = "local-video-camera-list-changed",
|
|
40
|
+
LocalAudioRecordingListChanged = "local-audio-recording-list-changed",
|
|
41
|
+
LocalAudioPlaybackListChanged = "local-audio-playback-list-changed",
|
|
42
|
+
LocalVideoTrackStateChanged = "local-video-track-state-changed",
|
|
43
|
+
LocalAudioTrackStateChanged = "local-audio-track-state-changed",
|
|
44
|
+
RtcConnectionStateChanged = "rtc-connection-state-changed",
|
|
45
|
+
RtmConnectionStateChanged = "rtm-connection-state-changed",
|
|
46
|
+
RteConnectionStateChanged = "rte-connection-state-changed"
|
|
47
|
+
}
|
|
48
|
+
export interface AgoraRteChannelMessageHandle {
|
|
49
|
+
on(evt: AgoraRteEventType, ...args: any[]): this;
|
|
50
|
+
off(evt: AgoraRteEventType, ...args: any[]): this;
|
|
51
|
+
}
|
|
52
|
+
export declare class AgoraRteChannelMessageHandle extends AGEventEmitter {
|
|
53
|
+
protected logger: Injectable.Logger;
|
|
54
|
+
private _dataStore;
|
|
55
|
+
sceneId: string;
|
|
56
|
+
userUuid: string;
|
|
57
|
+
streamUuid: string;
|
|
58
|
+
constructor(dataStore: AgoraRteSyncDataStore, { sceneId, userUuid, streamUuid, }: {
|
|
59
|
+
sceneId: string;
|
|
60
|
+
userUuid: string;
|
|
61
|
+
streamUuid: string;
|
|
62
|
+
});
|
|
63
|
+
handleSnapshot(snapshot: AgoraRteSyncSnapshotData): void;
|
|
64
|
+
handleMessage(task: AgoraRteMessageHandleTask): void;
|
|
65
|
+
handlePeerMessage(task: AgoraRtePeerMessageHandleTask): void;
|
|
66
|
+
private _handlePeerChat;
|
|
67
|
+
private _handleChat;
|
|
68
|
+
private _mergeProperties;
|
|
69
|
+
private _handleRoomProperties;
|
|
70
|
+
private _handleUserInOut;
|
|
71
|
+
private _handleUserInfo;
|
|
72
|
+
private _handleUserProperty;
|
|
73
|
+
private _handleUserProperties;
|
|
74
|
+
private _processStreamEvent;
|
|
75
|
+
private _handleStreamInOut;
|
|
76
|
+
private _handleStreamsInOut;
|
|
77
|
+
private _handleMessageExtension;
|
|
78
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import Immutable from 'immutable';
|
|
2
|
+
import { AgoraRteMediaSourceState } from '../../..';
|
|
3
|
+
import { AgoraRteAudioSourceType, AgoraRteMediaPublishState, AgoraRteVideoSourceType } from '../../media/track';
|
|
4
|
+
export declare type AgoraFromUser = {
|
|
5
|
+
userUuid: string;
|
|
6
|
+
userName: string;
|
|
7
|
+
role: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class AgoraRteSyncSnapshotData {
|
|
10
|
+
static fromData(data: any): AgoraRteSyncSnapshotData;
|
|
11
|
+
sequence: number;
|
|
12
|
+
users: Map<string, AgoraUser>;
|
|
13
|
+
streams: Map<string, AgoraStream>;
|
|
14
|
+
roomProperties: Immutable.Map<unknown, unknown>;
|
|
15
|
+
room: AgoraRoom;
|
|
16
|
+
constructor(data: any);
|
|
17
|
+
}
|
|
18
|
+
export interface AgoraRteOperator {
|
|
19
|
+
userUuid: string;
|
|
20
|
+
userName: string;
|
|
21
|
+
role: string;
|
|
22
|
+
}
|
|
23
|
+
export interface AgoraRteMessageHandleTask {
|
|
24
|
+
sequence: {
|
|
25
|
+
cmd: number;
|
|
26
|
+
operator: AgoraRteOperator;
|
|
27
|
+
sequence: number;
|
|
28
|
+
data: any;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface AgoraRtePeerMessageHandleTask {
|
|
32
|
+
cmd: number;
|
|
33
|
+
data: any;
|
|
34
|
+
}
|
|
35
|
+
export interface IAgoraUserData {
|
|
36
|
+
userName: string;
|
|
37
|
+
role: string;
|
|
38
|
+
userUuid: string;
|
|
39
|
+
userProperties: any;
|
|
40
|
+
}
|
|
41
|
+
export declare class AgoraUser {
|
|
42
|
+
static fromData(data: any): AgoraUser;
|
|
43
|
+
userUuid: string;
|
|
44
|
+
userName: string;
|
|
45
|
+
userRole: string;
|
|
46
|
+
userProperties: Immutable.Map<any, any>;
|
|
47
|
+
constructor(data: IAgoraUserData);
|
|
48
|
+
setUserProperties(userProperties: any): void;
|
|
49
|
+
toString(): string;
|
|
50
|
+
}
|
|
51
|
+
export interface IAgoraStreamData {
|
|
52
|
+
streamUuid: string;
|
|
53
|
+
streamName: string;
|
|
54
|
+
fromUser: AgoraFromUser;
|
|
55
|
+
videoSourceType: AgoraRteVideoSourceType;
|
|
56
|
+
audioSourceType: AgoraRteAudioSourceType;
|
|
57
|
+
videoState: AgoraRteMediaPublishState;
|
|
58
|
+
audioState: AgoraRteMediaPublishState;
|
|
59
|
+
videoSourceState: AgoraRteMediaSourceState;
|
|
60
|
+
audioSourceState: AgoraRteMediaSourceState;
|
|
61
|
+
}
|
|
62
|
+
export declare class AgoraStream {
|
|
63
|
+
static fromData(data: IAgoraStreamData): AgoraStream;
|
|
64
|
+
streamUuid: string;
|
|
65
|
+
streamName: string;
|
|
66
|
+
fromUser: AgoraFromUser;
|
|
67
|
+
videoSourceType: AgoraRteVideoSourceType;
|
|
68
|
+
audioSourceType: AgoraRteAudioSourceType;
|
|
69
|
+
videoState: AgoraRteMediaPublishState;
|
|
70
|
+
audioState: AgoraRteMediaPublishState;
|
|
71
|
+
videoSourceState: AgoraRteMediaSourceState;
|
|
72
|
+
audioSourceState: AgoraRteMediaSourceState;
|
|
73
|
+
previous?: AgoraStream;
|
|
74
|
+
constructor(data: IAgoraStreamData);
|
|
75
|
+
toString(): string;
|
|
76
|
+
}
|
|
77
|
+
export interface IAgoraRoomData {
|
|
78
|
+
roomName: string;
|
|
79
|
+
roomUuid: string;
|
|
80
|
+
roomScenario: string;
|
|
81
|
+
}
|
|
82
|
+
export declare class AgoraRoom {
|
|
83
|
+
static fromData(data: any): AgoraRoom;
|
|
84
|
+
roomName: string;
|
|
85
|
+
roomUuid: string;
|
|
86
|
+
roomScenario: string;
|
|
87
|
+
constructor(data: IAgoraRoomData);
|
|
88
|
+
}
|
|
89
|
+
export interface IAgoraChatMessage {
|
|
90
|
+
fromUser: AgoraFromUser;
|
|
91
|
+
message: string;
|
|
92
|
+
type: number;
|
|
93
|
+
sendTime: number;
|
|
94
|
+
sensitiveWords: string[];
|
|
95
|
+
messageId?: string;
|
|
96
|
+
peerMessageId?: string;
|
|
97
|
+
}
|
|
98
|
+
export declare class AgoraChatMessage {
|
|
99
|
+
static fromData(data: IAgoraChatMessage): AgoraChatMessage;
|
|
100
|
+
fromUser: AgoraFromUser;
|
|
101
|
+
message: string;
|
|
102
|
+
type: number;
|
|
103
|
+
sendTime: number;
|
|
104
|
+
sensitiveWords: string[];
|
|
105
|
+
messageId?: string;
|
|
106
|
+
constructor(data: IAgoraChatMessage);
|
|
107
|
+
toString(): string;
|
|
108
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import { Injectable } from '../../decorator/type';
|
|
4
|
+
import { AGRtmManager } from '../../rtm';
|
|
5
|
+
import { AgoraRteSyncDataStore } from './data';
|
|
6
|
+
import { AgoraRteChannelMessageHandle } from './handler';
|
|
7
|
+
import { AgoraRteMessageHandleTask, AgoraRteSyncSnapshotData } from './struct';
|
|
8
|
+
export declare class AgoraRteSynchronizer {
|
|
9
|
+
protected logger: Injectable.Logger;
|
|
10
|
+
sceneId: string;
|
|
11
|
+
userUuid: string;
|
|
12
|
+
streamUuid: string;
|
|
13
|
+
private _channelObserver;
|
|
14
|
+
private _snapshot?;
|
|
15
|
+
private _queueTasks;
|
|
16
|
+
private _currentTask?;
|
|
17
|
+
private _lastSeq;
|
|
18
|
+
private _requestingGap;
|
|
19
|
+
private _handleChannelMessage;
|
|
20
|
+
private _handlePeerMessage;
|
|
21
|
+
handle: AgoraRteChannelMessageHandle;
|
|
22
|
+
constructor(dataStore: AgoraRteSyncDataStore, { sceneId, userUuid, streamUuid, channelObserver, rtm, }: {
|
|
23
|
+
sceneId: string;
|
|
24
|
+
userUuid: string;
|
|
25
|
+
streamUuid: string;
|
|
26
|
+
channelObserver: EventEmitter;
|
|
27
|
+
rtm: AGRtmManager;
|
|
28
|
+
});
|
|
29
|
+
handlePeerMessage({ message, peerId }: {
|
|
30
|
+
message: string;
|
|
31
|
+
peerId: string;
|
|
32
|
+
}): void;
|
|
33
|
+
handleChannelMessage({ message, memberId, }: {
|
|
34
|
+
message: {
|
|
35
|
+
text: string;
|
|
36
|
+
};
|
|
37
|
+
memberId: string;
|
|
38
|
+
}): void;
|
|
39
|
+
syncSnapshot(snapshot: AgoraRteSyncSnapshotData): void;
|
|
40
|
+
findSequenceGap(): {
|
|
41
|
+
seq: number;
|
|
42
|
+
count: number;
|
|
43
|
+
queueHeadSeq: number;
|
|
44
|
+
} | null;
|
|
45
|
+
sortTasks(): void;
|
|
46
|
+
addTask(task: AgoraRteMessageHandleTask): void;
|
|
47
|
+
prependTasks(tasks: AgoraRteMessageHandleTask[]): void;
|
|
48
|
+
notifyTaskQueueUpdate(): void;
|
|
49
|
+
runNextTask: () => void;
|
|
50
|
+
dequeueTask(): AgoraRteMessageHandleTask | null | undefined;
|
|
51
|
+
processTask(task: AgoraRteMessageHandleTask): Promise<void>;
|
|
52
|
+
syncSequenceUntilSuccess(lastSeq: number, count: number): Promise<void>;
|
|
53
|
+
reset(): void;
|
|
54
|
+
}
|