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.
Files changed (86) hide show
  1. package/lib/configs/index.d.ts +67 -0
  2. package/lib/core/decorator/bound/index.d.ts +11 -0
  3. package/lib/core/decorator/handlers/log-handler.d.ts +2 -0
  4. package/lib/core/decorator/index.d.ts +4 -0
  5. package/lib/core/decorator/lodash/index.d.ts +13 -0
  6. package/lib/core/decorator/log/index.d.ts +23 -0
  7. package/lib/core/decorator/log/log-serializer.d.ts +7 -0
  8. package/lib/core/decorator/log/logger.d.ts +2 -0
  9. package/lib/core/decorator/proxy.d.ts +8 -0
  10. package/lib/core/decorator/type.d.ts +18 -0
  11. package/lib/core/decorator/utils.d.ts +2 -0
  12. package/lib/core/engine/index.d.ts +25 -0
  13. package/lib/core/logger/db.d.ts +14 -3
  14. package/lib/core/logger/index.d.ts +11 -16
  15. package/lib/core/logger/log.worker.d.ts +1 -2
  16. package/lib/core/logger/mutex.d.ts +5 -0
  17. package/lib/core/media/control.d.ts +39 -0
  18. package/lib/core/media/track.d.ts +52 -0
  19. package/lib/core/processor/channel-msg/data.d.ts +26 -0
  20. package/lib/core/processor/channel-msg/handler.d.ts +78 -0
  21. package/lib/core/processor/channel-msg/struct.d.ts +108 -0
  22. package/lib/core/processor/channel-msg/synchronizer.d.ts +54 -0
  23. package/lib/core/rtc/adapter/base.d.ts +69 -0
  24. package/lib/core/rtc/adapter/electron/device.d.ts +38 -0
  25. package/lib/core/rtc/adapter/electron/index.d.ts +84 -0
  26. package/lib/core/rtc/adapter/electron/stats.d.ts +14 -0
  27. package/lib/core/rtc/adapter/electron/thread.d.ts +18 -0
  28. package/lib/core/rtc/adapter/index.d.ts +18 -0
  29. package/lib/core/rtc/adapter/web/client.d.ts +49 -0
  30. package/lib/core/rtc/adapter/web/device.d.ts +37 -0
  31. package/lib/core/rtc/adapter/web/index.d.ts +77 -0
  32. package/lib/core/rtc/adapter/web/player.d.ts +19 -0
  33. package/lib/core/rtc/adapter/web/stats.d.ts +11 -0
  34. package/lib/core/rtc/adapter/web/thread.d.ts +69 -0
  35. package/lib/core/rtc/canvas.d.ts +15 -0
  36. package/lib/core/rtc/channel.d.ts +24 -0
  37. package/lib/core/rtc/index.d.ts +40 -0
  38. package/lib/core/rtc/type.d.ts +94 -0
  39. package/lib/core/rtm/index.d.ts +29 -35
  40. package/lib/core/schedule/index.d.ts +2 -0
  41. package/lib/core/schedule/scheduler.d.ts +21 -0
  42. package/lib/core/schedule/task.d.ts +35 -0
  43. package/lib/core/services/api.d.ts +53 -0
  44. package/lib/core/services/base.d.ts +16 -28
  45. package/lib/core/services/log.d.ts +7 -0
  46. package/lib/core/services/oss.d.ts +7 -0
  47. package/lib/core/services/{report-service.d.ts → report.d.ts} +4 -27
  48. package/lib/core/utils/decorator.d.ts +2 -0
  49. package/lib/core/utils/error.d.ts +64 -0
  50. package/lib/core/utils/events.d.ts +8 -0
  51. package/lib/core/utils/http-client.d.ts +1 -1
  52. package/lib/core/utils/thread.d.ts +10 -0
  53. package/lib/core/utils/types.d.ts +8 -0
  54. package/lib/core/utils/utils.d.ts +17 -0
  55. package/lib/index.d.ts +29 -22
  56. package/lib/index.js +2 -76
  57. package/lib/index.js.LICENSE.txt +90 -0
  58. package/lib/index.worker.js +1 -0
  59. package/lib/scene/index.d.ts +60 -0
  60. package/lib/type.d.ts +55 -0
  61. package/lib/user/index.d.ts +57 -0
  62. package/package.json +36 -6
  63. package/lib/core/index.d.ts +0 -1
  64. package/lib/core/logger/edu-sdk-logger.d.ts +0 -15
  65. package/lib/core/logger/interfaces/index.d.ts +0 -4
  66. package/lib/core/media-service/electron/index.d.ts +0 -239
  67. package/lib/core/media-service/index.d.ts +0 -75
  68. package/lib/core/media-service/interfaces/index.d.ts +0 -318
  69. package/lib/core/media-service/renderer/index.d.ts +0 -73
  70. package/lib/core/media-service/utils.d.ts +0 -16
  71. package/lib/core/media-service/web/coordinator.d.ts +0 -55
  72. package/lib/core/media-service/web/index.d.ts +0 -157
  73. package/lib/core/rtm/constants.d.ts +0 -32
  74. package/lib/core/rtm/message-serializer.d.ts +0 -45
  75. package/lib/core/services/edu-api.d.ts +0 -178
  76. package/lib/core/services/interface.d.ts +0 -122
  77. package/lib/core/services/log-upload.d.ts +0 -22
  78. package/lib/core/utils/fetch.d.ts +0 -2
  79. package/lib/core/utils/generic-error.d.ts +0 -11
  80. package/lib/interfaces/index.d.ts +0 -526
  81. package/lib/manager/index.d.ts +0 -50
  82. package/lib/room/edu-classroom-data-controller.d.ts +0 -113
  83. package/lib/room/edu-classroom-manager.d.ts +0 -56
  84. package/lib/room/types.d.ts +0 -108
  85. package/lib/user/edu-user-service.d.ts +0 -98
  86. 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,2 @@
1
+ import { InvocationEvent } from '../type';
2
+ export declare const createLogHandler: (level: 'info' | 'warn' | 'error') => (evt: InvocationEvent) => void;
@@ -0,0 +1,4 @@
1
+ export * from './log';
2
+ export * from './bound';
3
+ export * from './lodash';
4
+ export type { Injectable } from './type';
@@ -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,7 @@
1
+ interface Serializer {
2
+ match(obj: any): boolean;
3
+ serialize(obj: any): string;
4
+ }
5
+ export declare const addSerializer: (serializer: Serializer) => void;
6
+ export declare const serialize: (data: unknown) => unknown;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ import { Injectable } from '../type';
2
+ export declare const createLogger: (constructor: any) => Injectable.Logger;
@@ -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,2 @@
1
+ export declare const addIgnoredMethodsToPrototype: (prototype: any, ignoredMethods: string[]) => void;
2
+ export declare const isIgnoredMethod: (prototype: any, method: string) => any;
@@ -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
+ }
@@ -1,3 +1,14 @@
1
- import { EduSDKLogger } from './edu-sdk-logger';
2
- export declare const openDB: () => EduSDKLogger;
3
- export declare const db: EduSDKLogger;
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
- import LogWorker from 'worker-loader?inline=true&fallback=false!./log.worker';
2
- import { EduLogLevel } from './interfaces';
3
- import { LogUpload } from '../services/log-upload';
4
- export declare class EduLogger {
5
- static logLevel: EduLogLevel;
6
- private static get currentTime();
7
- static setLogLevel(level: EduLogLevel): void;
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 thread: LogWorker | null;
15
- static logUploader: LogUpload;
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
- declare const _default: any;
2
- export default _default;
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare class Mutex {
2
+ private mutex;
3
+ lock(): PromiseLike<() => void>;
4
+ dispatch<T>(fn: (() => T) | (() => PromiseLike<T>)): Promise<T>;
5
+ }
@@ -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
+ }