agora-rte-sdk 3.3.0 → 3.4.0
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/core/engine/ap-detector.d.ts +85 -0
- package/lib/core/engine/ap-detector.js +373 -0
- package/lib/core/engine/index.d.ts +1 -0
- package/lib/core/engine/index.js +22 -16
- package/lib/core/engine/plugin.js +2 -2
- package/lib/core/media/base-track.d.ts +1 -1
- package/lib/core/media/base-track.js +2 -2
- package/lib/core/media/camera.d.ts +2 -2
- package/lib/core/media/camera.js +16 -17
- package/lib/core/media/effect-enhancer.js +25 -25
- package/lib/core/media/index.d.ts +56 -53
- package/lib/core/media/index.js +109 -40
- package/lib/core/media/loopback.js +8 -7
- package/lib/core/media/microphone.d.ts +1 -11
- package/lib/core/media/microphone.js +11 -35
- package/lib/core/media/screen.d.ts +1 -1
- package/lib/core/media/screen.js +12 -12
- package/lib/core/media/type.d.ts +22 -20
- package/lib/core/media/type.js +0 -6
- package/lib/core/monitor/index.d.ts +1 -1
- package/lib/core/monitor/index.js +1 -141
- package/lib/core/processor/message-handler.d.ts +5 -2
- package/lib/core/processor/message-handler.js +36 -34
- package/lib/core/processor/sequence-msg/data.d.ts +1 -1
- package/lib/core/processor/sequence-msg/data.js +5 -5
- package/lib/core/processor/sequence-msg/synchronizer.d.ts +4 -2
- package/lib/core/processor/sequence-msg/synchronizer.js +43 -26
- package/lib/core/processor/type.d.ts +1 -0
- package/lib/core/processor/type.js +1 -0
- package/lib/core/rtc/canvas.d.ts +10 -3
- package/lib/core/rtc/canvas.js +26 -2
- package/lib/core/rtc/capture-enhancement.d.ts +118 -0
- package/lib/core/rtc/capture-enhancement.js +13 -0
- package/lib/core/rtc/channel.d.ts +19 -100
- package/lib/core/rtc/channel.js +9 -25
- package/lib/core/rtc/client.d.ts +77 -275
- package/lib/core/rtc/client.js +4 -28
- package/lib/core/rtc/index.d.ts +3 -3
- package/lib/core/rtc/publish-pool.d.ts +16 -0
- package/lib/core/rtc/publish-pool.js +32 -0
- package/lib/core/rtc/publisher.d.ts +43 -0
- package/lib/core/rtc/publisher.js +24 -0
- package/lib/core/rtc/source-manager.d.ts +178 -0
- package/lib/core/rtc/source-manager.js +32 -0
- package/lib/core/rtc/subscriber.d.ts +29 -0
- package/lib/core/rtc/subscriber.js +13 -0
- package/lib/core/rtc/type.d.ts +89 -63
- package/lib/core/rtc/type.js +30 -7
- package/lib/core/scene/helper.d.ts +3 -2
- package/lib/core/scene/helper.js +30 -15
- package/lib/core/scene/index.d.ts +20 -19
- package/lib/core/scene/index.js +541 -459
- package/lib/core/scene/local-user.d.ts +2 -2
- package/lib/core/scene/local-user.js +4 -5
- package/lib/core/scene/state-sync.d.ts +1 -1
- package/lib/core/scene/state-sync.js +3 -4
- package/lib/core/scene/stream-player.d.ts +7 -12
- package/lib/core/scene/stream-player.js +13 -31
- package/lib/core/scene/type.d.ts +12 -11
- package/lib/core/services/api.d.ts +4 -4
- package/lib/core/services/api.js +3 -4
- package/lib/core/services/client.d.ts +18 -20
- package/lib/core/services/client.js +12 -332
- package/lib/core/services/domain-holder.js +2 -2
- package/lib/core/utilities/clone.js +3 -17
- package/lib/core/utilities/error.js +8 -7
- package/lib/core/utilities/fetch.d.ts +10 -0
- package/lib/core/utilities/fetch.js +61 -0
- package/lib/core/utilities/parameters.d.ts +4 -17
- package/lib/core/utilities/parameters.js +32 -64
- package/lib/imports.d.ts +29 -0
- package/lib/imports.js +189 -0
- package/lib/index.d.ts +9 -5
- package/lib/index.js +16 -3
- package/lib/plugin/monitor/index.d.ts +1 -0
- package/lib/plugin/monitor/index.js +128 -0
- package/lib/plugin/monitor/log-upload/handler.d.ts +34 -0
- package/lib/plugin/monitor/log-upload/handler.js +253 -0
- package/lib/plugin/monitor/log-upload/scheduler.d.ts +8 -0
- package/lib/plugin/monitor/log-upload/scheduler.js +94 -0
- package/lib/plugin/monitor/log-upload/type.d.ts +11 -0
- package/lib/plugin/monitor/log-upload/type.js +6 -0
- package/lib/plugin/monitor/type.d.ts +5 -0
- package/lib/plugin/monitor/type.js +6 -0
- package/lib/plugin/restful-client/index.d.ts +25 -0
- package/lib/plugin/restful-client/index.js +330 -0
- package/lib/plugin/rtc/electron/canvas-helper.d.ts +11 -0
- package/lib/plugin/rtc/electron/canvas-helper.js +94 -0
- package/lib/plugin/rtc/electron/capture-enhancement.d.ts +47 -0
- package/lib/plugin/rtc/electron/capture-enhancement.js +359 -0
- package/lib/plugin/rtc/electron/channel.d.ts +61 -0
- package/lib/plugin/rtc/electron/channel.js +619 -0
- package/lib/plugin/rtc/electron/client.d.ts +33 -84
- package/lib/plugin/rtc/electron/client.js +404 -963
- package/lib/plugin/rtc/electron/device.d.ts +8 -4
- package/lib/plugin/rtc/electron/device.js +92 -31
- package/lib/plugin/rtc/electron/dowloadALD.d.ts +3 -0
- package/lib/plugin/rtc/electron/dowloadALD.js +107 -0
- package/lib/plugin/rtc/electron/index.js +1 -6
- package/lib/plugin/rtc/electron/loopback-mixer.d.ts +1 -1
- package/lib/plugin/rtc/electron/loopback-mixer.js +6 -4
- package/lib/plugin/rtc/electron/main-channel.d.ts +2 -0
- package/lib/plugin/rtc/electron/main-channel.js +66 -52
- package/lib/plugin/rtc/electron/parameters.js +2 -1
- package/lib/plugin/rtc/electron/publish-pool.d.ts +36 -0
- package/lib/plugin/rtc/electron/publish-pool.js +334 -0
- package/lib/plugin/rtc/electron/publisher.d.ts +23 -0
- package/lib/plugin/rtc/electron/publisher.js +141 -0
- package/lib/plugin/rtc/electron/screen-channel.d.ts +1 -0
- package/lib/plugin/rtc/electron/screen-channel.js +20 -2
- package/lib/plugin/rtc/electron/source-manager.d.ts +65 -0
- package/lib/plugin/rtc/electron/source-manager.js +870 -0
- package/lib/plugin/rtc/electron/sub-camera-channel.d.ts +1 -0
- package/lib/plugin/rtc/electron/sub-camera-channel.js +5 -0
- package/lib/plugin/rtc/electron/subscriber.d.ts +26 -0
- package/lib/plugin/rtc/electron/subscriber.js +194 -0
- package/lib/plugin/rtc/electron/type.d.ts +12 -5
- package/lib/plugin/rtc/electron/type.js +13 -1
- package/lib/plugin/rtc/electron/utils.d.ts +12 -1
- package/lib/plugin/rtc/electron/utils.js +51 -2
- package/lib/plugin/rtc/web/assembler.d.ts +1 -1
- package/lib/plugin/rtc/web/assembler.js +4 -2
- package/lib/plugin/rtc/web/audio-player.d.ts +4 -5
- package/lib/plugin/rtc/web/audio-player.js +7 -16
- package/lib/plugin/rtc/web/canvas-helper.d.ts +9 -0
- package/lib/plugin/rtc/web/canvas-helper.js +93 -0
- package/lib/plugin/rtc/web/capture-enhancement.d.ts +32 -0
- package/lib/plugin/rtc/web/capture-enhancement.js +220 -0
- package/lib/plugin/rtc/web/channel.d.ts +41 -0
- package/lib/plugin/rtc/web/channel.js +518 -0
- package/lib/plugin/rtc/web/client.d.ts +27 -62
- package/lib/plugin/rtc/web/client.js +159 -349
- package/lib/plugin/rtc/web/device.d.ts +12 -6
- package/lib/plugin/rtc/web/device.js +106 -54
- package/lib/plugin/rtc/web/effect-enabler.js +1 -1
- package/lib/plugin/rtc/web/extension.d.ts +1 -1
- package/lib/plugin/rtc/web/index.js +3 -16
- package/lib/plugin/rtc/web/main-channel.d.ts +2 -1
- package/lib/plugin/rtc/web/main-channel.js +22 -29
- package/lib/plugin/rtc/web/publish-pool.d.ts +33 -0
- package/lib/plugin/rtc/web/publish-pool.js +261 -0
- package/lib/plugin/rtc/web/publish.d.ts +2 -2
- package/lib/plugin/rtc/web/publish.js +2 -2
- package/lib/plugin/rtc/web/publisher.d.ts +24 -0
- package/lib/plugin/rtc/web/publisher.js +303 -0
- package/lib/plugin/rtc/web/screen-channel.d.ts +1 -0
- package/lib/plugin/rtc/web/screen-channel.js +5 -0
- package/lib/plugin/rtc/web/source-manager.d.ts +44 -0
- package/lib/plugin/rtc/web/source-manager.js +322 -0
- package/lib/plugin/rtc/web/subscribe.d.ts +6 -9
- package/lib/plugin/rtc/web/subscribe.js +94 -71
- package/lib/plugin/rtc/web/subscriber.d.ts +12 -0
- package/lib/plugin/rtc/web/subscriber.js +56 -0
- package/lib/plugin/rtc/web/track-control/camera.d.ts +1 -0
- package/lib/plugin/rtc/web/track-control/camera.js +71 -45
- package/lib/plugin/rtc/web/track-control/microphone.d.ts +7 -7
- package/lib/plugin/rtc/web/track-control/microphone.js +39 -35
- package/lib/plugin/rtc/web/track-control/screen.d.ts +2 -0
- package/lib/plugin/rtc/web/track-control/screen.js +12 -0
- package/lib/plugin/rtc/web/type.d.ts +8 -12
- package/lib/plugin/rtc/web/utils.d.ts +1 -0
- package/lib/plugin/rtc/web/utils.js +8 -0
- package/lib/plugin/rtm/client.js +1 -1
- package/lib/type.d.ts +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { AgoraRteError } from '../utilities/error';
|
|
2
|
+
export interface AgoraRtcAccessPointConfig {
|
|
3
|
+
serverList: string[];
|
|
4
|
+
verifyDomainName?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AgoraWebRtcAccessPointConfig extends AgoraRtcAccessPointConfig {
|
|
7
|
+
serverDomain?: string;
|
|
8
|
+
serverPort?: number;
|
|
9
|
+
reportConfig?: {
|
|
10
|
+
hostname?: string[];
|
|
11
|
+
port?: number;
|
|
12
|
+
};
|
|
13
|
+
logConfig?: {
|
|
14
|
+
hostname?: string[];
|
|
15
|
+
port?: number;
|
|
16
|
+
};
|
|
17
|
+
cdsConfig?: {
|
|
18
|
+
hostname?: string[];
|
|
19
|
+
port?: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface AgoraElectronRtcAccessPointConfig extends AgoraRtcAccessPointConfig {
|
|
23
|
+
verifyDomainName: string;
|
|
24
|
+
}
|
|
25
|
+
export interface AgoraRteApDetectorObserver {
|
|
26
|
+
onDetectionSuccess?(): void;
|
|
27
|
+
onDetectionFailure?(): void;
|
|
28
|
+
}
|
|
29
|
+
export interface AgoraRteApDetector {
|
|
30
|
+
readonly finished: boolean;
|
|
31
|
+
_internalRtcConfig: AgoraRtcAccessPointConfig | undefined;
|
|
32
|
+
_externalRtcConfig: AgoraRtcAccessPointConfig | undefined;
|
|
33
|
+
init(internalRtcConfig: AgoraRtcAccessPointConfig | undefined, externalRtcConfig: AgoraRtcAccessPointConfig | undefined): void;
|
|
34
|
+
/**
|
|
35
|
+
* 是否需要探测
|
|
36
|
+
*/
|
|
37
|
+
isDetectRequired(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 开始探测可用IP
|
|
40
|
+
*/
|
|
41
|
+
start(): void;
|
|
42
|
+
/**
|
|
43
|
+
* 停止探测可用IP
|
|
44
|
+
*/
|
|
45
|
+
stop(): void;
|
|
46
|
+
/**
|
|
47
|
+
* 是否已探测完成
|
|
48
|
+
*/
|
|
49
|
+
isFinished(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* 获取可用IP列表
|
|
52
|
+
*/
|
|
53
|
+
getAvailableRtcAccessPointConfig(): AgoraRtcAccessPointConfig | null;
|
|
54
|
+
/**
|
|
55
|
+
* 添加成功/失败的观察器
|
|
56
|
+
*/
|
|
57
|
+
addObserver(observer: AgoraRteApDetectorObserver): AgoraRteError | void;
|
|
58
|
+
/**
|
|
59
|
+
* 移除成功/失败的观察器
|
|
60
|
+
*/
|
|
61
|
+
removeObserver(observer: AgoraRteApDetectorObserver): AgoraRteError | void;
|
|
62
|
+
}
|
|
63
|
+
export declare class AgoraRteApDetectorImpl implements AgoraRteApDetector {
|
|
64
|
+
finished: boolean;
|
|
65
|
+
_internalRtcConfig: AgoraRtcAccessPointConfig | undefined;
|
|
66
|
+
_externalRtcConfig: AgoraRtcAccessPointConfig | undefined;
|
|
67
|
+
private detectWorkMap;
|
|
68
|
+
private _apDetectorObserver;
|
|
69
|
+
private _rawObjGroups;
|
|
70
|
+
constructor(internalRtcConfig: AgoraRtcAccessPointConfig | undefined, externalRtcConfig: AgoraRtcAccessPointConfig | undefined);
|
|
71
|
+
init(internalRtcConfig: AgoraRtcAccessPointConfig | undefined, externalRtcConfig: AgoraRtcAccessPointConfig | undefined): void;
|
|
72
|
+
get hasDetectingTask(): boolean;
|
|
73
|
+
private _getDetectWorkMapRawVal;
|
|
74
|
+
private _transformUrlToRequestUrl;
|
|
75
|
+
private _fetchWithTimeoutAndCheck;
|
|
76
|
+
private _runTasksWithConcurrency;
|
|
77
|
+
start(): void;
|
|
78
|
+
private _checkResultAndNotifyResult;
|
|
79
|
+
isDetectRequired(): boolean;
|
|
80
|
+
stop(): void;
|
|
81
|
+
isFinished(): boolean;
|
|
82
|
+
getAvailableRtcAccessPointConfig(): AgoraRtcAccessPointConfig | null;
|
|
83
|
+
addObserver(observer: AgoraRteApDetectorObserver): AgoraRteError | void;
|
|
84
|
+
removeObserver(observer: AgoraRteApDetectorObserver): AgoraRteError | void;
|
|
85
|
+
}
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.js");
|
|
4
|
+
require("core-js/modules/es.symbol.description.js");
|
|
5
|
+
require("core-js/modules/es.symbol.iterator.js");
|
|
6
|
+
require("core-js/modules/es.array.from.js");
|
|
7
|
+
require("core-js/modules/es.date.to-string.js");
|
|
8
|
+
require("core-js/modules/es.object.define-property.js");
|
|
9
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
10
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
11
|
+
Object.defineProperty(exports, "__esModule", {
|
|
12
|
+
value: true
|
|
13
|
+
});
|
|
14
|
+
exports.AgoraRteApDetectorImpl = void 0;
|
|
15
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
16
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
18
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
require("core-js/modules/es.error.cause.js");
|
|
22
|
+
require("core-js/modules/es.error.to-string.js");
|
|
23
|
+
require("core-js/modules/es.array.filter.js");
|
|
24
|
+
require("core-js/modules/es.array.is-array.js");
|
|
25
|
+
require("core-js/modules/es.array.iterator.js");
|
|
26
|
+
require("core-js/modules/es.array.join.js");
|
|
27
|
+
require("core-js/modules/es.array.map.js");
|
|
28
|
+
require("core-js/modules/es.array.push.js");
|
|
29
|
+
require("core-js/modules/es.array.slice.js");
|
|
30
|
+
require("core-js/modules/es.function.name.js");
|
|
31
|
+
require("core-js/modules/es.object.to-string.js");
|
|
32
|
+
require("core-js/modules/es.promise.js");
|
|
33
|
+
require("core-js/modules/es.promise.all-settled.js");
|
|
34
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
35
|
+
require("core-js/modules/es.regexp.test.js");
|
|
36
|
+
require("core-js/modules/es.string.iterator.js");
|
|
37
|
+
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
38
|
+
require("core-js/modules/esnext.async-iterator.map.js");
|
|
39
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
40
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
41
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
42
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
43
|
+
var _imports = require("../../imports");
|
|
44
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
45
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
46
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
47
|
+
var NEED_DETECT_MAX_IP_COUNT = 5;
|
|
48
|
+
var DEFAULT_FETCH_URL_TIMEOUT = 300;
|
|
49
|
+
var isMock = false;
|
|
50
|
+
// 用于判断是否是IP地址,简单的正则表达式判断示例,可根据实际完善
|
|
51
|
+
var isIP = function isIP(ip) {
|
|
52
|
+
var ipRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
53
|
+
return ipRegex.test(ip);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// 判断是否为域名的函数
|
|
57
|
+
var isDomainName = function isDomainName(str) {
|
|
58
|
+
var domainRegex = /^(?!:\/\/)(?=^.{1,253}$)([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/;
|
|
59
|
+
return domainRegex.test(str);
|
|
60
|
+
};
|
|
61
|
+
var AgoraRteApDetectorImpl = exports.AgoraRteApDetectorImpl = /*#__PURE__*/function () {
|
|
62
|
+
function AgoraRteApDetectorImpl(internalRtcConfig, externalRtcConfig) {
|
|
63
|
+
(0, _classCallCheck2["default"])(this, AgoraRteApDetectorImpl);
|
|
64
|
+
(0, _defineProperty2["default"])(this, "finished", false);
|
|
65
|
+
(0, _defineProperty2["default"])(this, "detectWorkMap", this._getDetectWorkMapRawVal());
|
|
66
|
+
(0, _defineProperty2["default"])(this, "_apDetectorObserver", new _imports.AgoraObservable());
|
|
67
|
+
(0, _defineProperty2["default"])(this, "_rawObjGroups", []);
|
|
68
|
+
this.init(internalRtcConfig, externalRtcConfig);
|
|
69
|
+
}
|
|
70
|
+
return (0, _createClass2["default"])(AgoraRteApDetectorImpl, [{
|
|
71
|
+
key: "init",
|
|
72
|
+
value: function init(internalRtcConfig, externalRtcConfig) {
|
|
73
|
+
this._internalRtcConfig = internalRtcConfig;
|
|
74
|
+
this._externalRtcConfig = externalRtcConfig;
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "hasDetectingTask",
|
|
78
|
+
get: function get() {
|
|
79
|
+
return this.detectWorkMap.isDetecting;
|
|
80
|
+
}
|
|
81
|
+
}, {
|
|
82
|
+
key: "_getDetectWorkMapRawVal",
|
|
83
|
+
value: function _getDetectWorkMapRawVal() {
|
|
84
|
+
var newMap = {
|
|
85
|
+
internal: {
|
|
86
|
+
result: null
|
|
87
|
+
},
|
|
88
|
+
external: {
|
|
89
|
+
result: null
|
|
90
|
+
},
|
|
91
|
+
isDetecting: false
|
|
92
|
+
};
|
|
93
|
+
return newMap;
|
|
94
|
+
}
|
|
95
|
+
}, {
|
|
96
|
+
key: "_transformUrlToRequestUrl",
|
|
97
|
+
value: function _transformUrlToRequestUrl(url) {
|
|
98
|
+
if (isMock) {
|
|
99
|
+
return "http://".concat(url);
|
|
100
|
+
} else if ((0, _imports.isElectron)()) {
|
|
101
|
+
return "https://".concat(url);
|
|
102
|
+
} else {
|
|
103
|
+
if (isIP(url)) {
|
|
104
|
+
var modifiedIp = url.split('.').join('-') + '.rtctest.com';
|
|
105
|
+
var getUrl = "https://".concat(modifiedIp);
|
|
106
|
+
return getUrl;
|
|
107
|
+
} else if (isDomainName(url)) {
|
|
108
|
+
return "https://".concat(url);
|
|
109
|
+
}
|
|
110
|
+
return '';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// 请求 url,300ms 内返回 HTTP 状态 为 200 且包体为 hello 表示成功,其他情况均为失败
|
|
115
|
+
}, {
|
|
116
|
+
key: "_fetchWithTimeoutAndCheck",
|
|
117
|
+
value: function _fetchWithTimeoutAndCheck(urlObj, customTimeout) {
|
|
118
|
+
return new Promise(function (resolve, reject) {
|
|
119
|
+
(0, _imports.fetch)(urlObj.requestUrl, {
|
|
120
|
+
timeout: customTimeout,
|
|
121
|
+
method: 'GET'
|
|
122
|
+
}).then(/*#__PURE__*/function () {
|
|
123
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(response) {
|
|
124
|
+
var data;
|
|
125
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
126
|
+
while (1) switch (_context.prev = _context.next) {
|
|
127
|
+
case 0:
|
|
128
|
+
if (response.status === 200) {
|
|
129
|
+
data = response.data;
|
|
130
|
+
if (data === 'hello') {
|
|
131
|
+
resolve(urlObj.rawUrl);
|
|
132
|
+
} else {
|
|
133
|
+
reject(new Error('response content not hello'));
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
reject(new Error("response code not 200, but: ".concat(response.status)));
|
|
137
|
+
}
|
|
138
|
+
case 1:
|
|
139
|
+
case "end":
|
|
140
|
+
return _context.stop();
|
|
141
|
+
}
|
|
142
|
+
}, _callee);
|
|
143
|
+
}));
|
|
144
|
+
return function (_x) {
|
|
145
|
+
return _ref.apply(this, arguments);
|
|
146
|
+
};
|
|
147
|
+
}())["catch"](function (error) {
|
|
148
|
+
if (error.name === 'AbortError') {
|
|
149
|
+
reject(new Error('request timeout'));
|
|
150
|
+
} else {
|
|
151
|
+
reject(error);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}, {
|
|
157
|
+
key: "_runTasksWithConcurrency",
|
|
158
|
+
value: function () {
|
|
159
|
+
var _runTasksWithConcurrency2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(rawUrls, maxConcurrency) {
|
|
160
|
+
var _this = this;
|
|
161
|
+
var urlObjs, i, rawUrl, requestUrl, rawObjGroups, _i, allResults, processGroups;
|
|
162
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
163
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
164
|
+
case 0:
|
|
165
|
+
// 用于存放分组后的原始链接组
|
|
166
|
+
urlObjs = [];
|
|
167
|
+
for (i = 0; i < rawUrls.length; i++) {
|
|
168
|
+
rawUrl = rawUrls[i];
|
|
169
|
+
requestUrl = this._transformUrlToRequestUrl(rawUrl);
|
|
170
|
+
if (requestUrl) {
|
|
171
|
+
urlObjs.push({
|
|
172
|
+
rawUrl: rawUrl,
|
|
173
|
+
requestUrl: requestUrl
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
rawObjGroups = [];
|
|
178
|
+
for (_i = 0; _i < urlObjs.length; _i += maxConcurrency) {
|
|
179
|
+
rawObjGroups.push(urlObjs.slice(_i, _i + maxConcurrency));
|
|
180
|
+
}
|
|
181
|
+
this._rawObjGroups = rawObjGroups;
|
|
182
|
+
allResults = []; // 依次处理每个请求组
|
|
183
|
+
processGroups = /*#__PURE__*/function () {
|
|
184
|
+
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
185
|
+
var _iterator, _step, group, groupPromises, groupPromiseResults, resolvedResults, finalResults;
|
|
186
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
187
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
188
|
+
case 0:
|
|
189
|
+
// 用于存放所有组请求结果的数组
|
|
190
|
+
_iterator = _createForOfIteratorHelper(_this._rawObjGroups);
|
|
191
|
+
_context2.prev = 1;
|
|
192
|
+
_iterator.s();
|
|
193
|
+
case 3:
|
|
194
|
+
if ((_step = _iterator.n()).done) {
|
|
195
|
+
_context2.next = 14;
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
group = _step.value;
|
|
199
|
+
// 将一组请求的Promise对象收集起来
|
|
200
|
+
groupPromises = group.map(function (urlObj) {
|
|
201
|
+
return _this._fetchWithTimeoutAndCheck(urlObj, DEFAULT_FETCH_URL_TIMEOUT);
|
|
202
|
+
});
|
|
203
|
+
_context2.next = 8;
|
|
204
|
+
return Promise.allSettled(groupPromises);
|
|
205
|
+
case 8:
|
|
206
|
+
groupPromiseResults = _context2.sent;
|
|
207
|
+
resolvedResults = groupPromiseResults.filter(function (result) {
|
|
208
|
+
return result.status === 'fulfilled';
|
|
209
|
+
});
|
|
210
|
+
finalResults = resolvedResults.map(function (result) {
|
|
211
|
+
return result.value;
|
|
212
|
+
});
|
|
213
|
+
allResults.push.apply(allResults, (0, _toConsumableArray2["default"])(finalResults));
|
|
214
|
+
case 12:
|
|
215
|
+
_context2.next = 3;
|
|
216
|
+
break;
|
|
217
|
+
case 14:
|
|
218
|
+
_context2.next = 19;
|
|
219
|
+
break;
|
|
220
|
+
case 16:
|
|
221
|
+
_context2.prev = 16;
|
|
222
|
+
_context2.t0 = _context2["catch"](1);
|
|
223
|
+
_iterator.e(_context2.t0);
|
|
224
|
+
case 19:
|
|
225
|
+
_context2.prev = 19;
|
|
226
|
+
_iterator.f();
|
|
227
|
+
return _context2.finish(19);
|
|
228
|
+
case 22:
|
|
229
|
+
case "end":
|
|
230
|
+
return _context2.stop();
|
|
231
|
+
}
|
|
232
|
+
}, _callee2, null, [[1, 16, 19, 22]]);
|
|
233
|
+
}));
|
|
234
|
+
return function processGroups() {
|
|
235
|
+
return _ref2.apply(this, arguments);
|
|
236
|
+
};
|
|
237
|
+
}();
|
|
238
|
+
_context3.next = 9;
|
|
239
|
+
return processGroups();
|
|
240
|
+
case 9:
|
|
241
|
+
return _context3.abrupt("return", allResults);
|
|
242
|
+
case 10:
|
|
243
|
+
case "end":
|
|
244
|
+
return _context3.stop();
|
|
245
|
+
}
|
|
246
|
+
}, _callee3, this);
|
|
247
|
+
}));
|
|
248
|
+
function _runTasksWithConcurrency(_x2, _x3) {
|
|
249
|
+
return _runTasksWithConcurrency2.apply(this, arguments);
|
|
250
|
+
}
|
|
251
|
+
return _runTasksWithConcurrency;
|
|
252
|
+
}()
|
|
253
|
+
}, {
|
|
254
|
+
key: "start",
|
|
255
|
+
value: function start() {
|
|
256
|
+
var _this$_internalRtcCon,
|
|
257
|
+
_this$_internalRtcCon2,
|
|
258
|
+
_this$_externalRtcCon,
|
|
259
|
+
_this$_externalRtcCon2,
|
|
260
|
+
_this2 = this;
|
|
261
|
+
if (this.finished || this.hasDetectingTask) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
var internalIpList = (_this$_internalRtcCon = (_this$_internalRtcCon2 = this._internalRtcConfig) === null || _this$_internalRtcCon2 === void 0 ? void 0 : _this$_internalRtcCon2.serverList) !== null && _this$_internalRtcCon !== void 0 ? _this$_internalRtcCon : [];
|
|
265
|
+
var externalIpList = (_this$_externalRtcCon = (_this$_externalRtcCon2 = this._externalRtcConfig) === null || _this$_externalRtcCon2 === void 0 ? void 0 : _this$_externalRtcCon2.serverList) !== null && _this$_externalRtcCon !== void 0 ? _this$_externalRtcCon : [];
|
|
266
|
+
var maxConcurrency = 5;
|
|
267
|
+
(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
268
|
+
var _this2$detectWorkMap$;
|
|
269
|
+
var resUrls, internalResultIpList, _resUrls;
|
|
270
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
271
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
272
|
+
case 0:
|
|
273
|
+
// 如果传入了内部IP的合法配置
|
|
274
|
+
_this2.detectWorkMap.isDetecting = true;
|
|
275
|
+
if (!(_this2._internalRtcConfig && internalIpList.length > 0)) {
|
|
276
|
+
_context4.next = 6;
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
_context4.next = 4;
|
|
280
|
+
return _this2._runTasksWithConcurrency(internalIpList, maxConcurrency);
|
|
281
|
+
case 4:
|
|
282
|
+
resUrls = _context4.sent;
|
|
283
|
+
_this2.detectWorkMap.internal.result = {
|
|
284
|
+
serverList: resUrls,
|
|
285
|
+
verifyDomainName: _this2._internalRtcConfig.verifyDomainName
|
|
286
|
+
};
|
|
287
|
+
case 6:
|
|
288
|
+
internalResultIpList = ((_this2$detectWorkMap$ = _this2.detectWorkMap.internal) === null || _this2$detectWorkMap$ === void 0 || (_this2$detectWorkMap$ = _this2$detectWorkMap$.result) === null || _this2$detectWorkMap$ === void 0 ? void 0 : _this2$detectWorkMap$.serverList) || []; // 如果传入了外部IP的合法配置 并且 内网配置结果的ipList未有合格项
|
|
289
|
+
if (!(_this2._externalRtcConfig && externalIpList.length > 0 && internalResultIpList.length == 0)) {
|
|
290
|
+
_context4.next = 12;
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
_context4.next = 10;
|
|
294
|
+
return _this2._runTasksWithConcurrency(externalIpList, maxConcurrency);
|
|
295
|
+
case 10:
|
|
296
|
+
_resUrls = _context4.sent;
|
|
297
|
+
_this2.detectWorkMap.external.result = {
|
|
298
|
+
serverList: _resUrls,
|
|
299
|
+
verifyDomainName: _this2._externalRtcConfig.verifyDomainName
|
|
300
|
+
};
|
|
301
|
+
case 12:
|
|
302
|
+
_this2.detectWorkMap.isDetecting = false;
|
|
303
|
+
_this2._checkResultAndNotifyResult();
|
|
304
|
+
case 14:
|
|
305
|
+
case "end":
|
|
306
|
+
return _context4.stop();
|
|
307
|
+
}
|
|
308
|
+
}, _callee4);
|
|
309
|
+
}))();
|
|
310
|
+
}
|
|
311
|
+
}, {
|
|
312
|
+
key: "_checkResultAndNotifyResult",
|
|
313
|
+
value: function _checkResultAndNotifyResult() {
|
|
314
|
+
var cfg = this.getAvailableRtcAccessPointConfig();
|
|
315
|
+
if (!cfg) {
|
|
316
|
+
this._apDetectorObserver.notifyObservers('onDetectionFailure');
|
|
317
|
+
} else {
|
|
318
|
+
this._apDetectorObserver.notifyObservers('onDetectionSuccess');
|
|
319
|
+
}
|
|
320
|
+
this.detectWorkMap.isDetecting = false;
|
|
321
|
+
this.finished = true;
|
|
322
|
+
}
|
|
323
|
+
}, {
|
|
324
|
+
key: "isDetectRequired",
|
|
325
|
+
value: function isDetectRequired() {
|
|
326
|
+
if (this._internalRtcConfig || this._externalRtcConfig) {
|
|
327
|
+
var _this$_internalRtcCon3, _this$_internalRtcCon4, _this$_externalRtcCon3, _this$_externalRtcCon4;
|
|
328
|
+
var internalLen = (_this$_internalRtcCon3 = (_this$_internalRtcCon4 = this._internalRtcConfig) === null || _this$_internalRtcCon4 === void 0 ? void 0 : _this$_internalRtcCon4.serverList.length) !== null && _this$_internalRtcCon3 !== void 0 ? _this$_internalRtcCon3 : 0;
|
|
329
|
+
var externalLen = (_this$_externalRtcCon3 = (_this$_externalRtcCon4 = this._externalRtcConfig) === null || _this$_externalRtcCon4 === void 0 ? void 0 : _this$_externalRtcCon4.serverList.length) !== null && _this$_externalRtcCon3 !== void 0 ? _this$_externalRtcCon3 : 0;
|
|
330
|
+
return internalLen >= NEED_DETECT_MAX_IP_COUNT || externalLen >= NEED_DETECT_MAX_IP_COUNT;
|
|
331
|
+
}
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
}, {
|
|
335
|
+
key: "stop",
|
|
336
|
+
value: function stop() {
|
|
337
|
+
this._rawObjGroups = [];
|
|
338
|
+
this.detectWorkMap = this._getDetectWorkMapRawVal();
|
|
339
|
+
}
|
|
340
|
+
}, {
|
|
341
|
+
key: "isFinished",
|
|
342
|
+
value: function isFinished() {
|
|
343
|
+
return this.finished;
|
|
344
|
+
}
|
|
345
|
+
}, {
|
|
346
|
+
key: "getAvailableRtcAccessPointConfig",
|
|
347
|
+
value: function getAvailableRtcAccessPointConfig() {
|
|
348
|
+
if (!this.isDetectRequired() || this.isFinished()) {
|
|
349
|
+
return this._internalRtcConfig || this._externalRtcConfig || null;
|
|
350
|
+
}
|
|
351
|
+
var res = null;
|
|
352
|
+
var internalResult = this.detectWorkMap.internal.result;
|
|
353
|
+
if (internalResult && Array.isArray(internalResult.serverList) && internalResult.serverList.length > 0) {
|
|
354
|
+
res = internalResult;
|
|
355
|
+
}
|
|
356
|
+
var externalResult = this.detectWorkMap.external.result;
|
|
357
|
+
if (!res && externalResult && Array.isArray(externalResult.serverList) && externalResult.serverList.length > 0) {
|
|
358
|
+
res = externalResult;
|
|
359
|
+
}
|
|
360
|
+
return res;
|
|
361
|
+
}
|
|
362
|
+
}, {
|
|
363
|
+
key: "addObserver",
|
|
364
|
+
value: function addObserver(observer) {
|
|
365
|
+
this._apDetectorObserver.addObserver(observer);
|
|
366
|
+
}
|
|
367
|
+
}, {
|
|
368
|
+
key: "removeObserver",
|
|
369
|
+
value: function removeObserver(observer) {
|
|
370
|
+
this._apDetectorObserver.removeObserver(observer);
|
|
371
|
+
}
|
|
372
|
+
}]);
|
|
373
|
+
}();
|
package/lib/core/engine/index.js
CHANGED
|
@@ -57,26 +57,24 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
57
57
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
58
58
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
59
59
|
var _media = require("../media");
|
|
60
|
-
var
|
|
60
|
+
var _imports = require("../../imports");
|
|
61
61
|
var _rtc = require("../rtc");
|
|
62
62
|
var _rtm = require("../rtm");
|
|
63
63
|
var _clone = require("../utilities/clone");
|
|
64
64
|
var _type = require("../../type");
|
|
65
|
-
var _monitor = require("../monitor");
|
|
66
|
-
var _client = require("../services/client");
|
|
67
65
|
var _authHeaders = require("../services/auth-headers");
|
|
68
66
|
var _scene = require("../scene");
|
|
69
67
|
var _registry = require("./registry");
|
|
70
68
|
var _plugin = require("./plugin");
|
|
71
69
|
var _type2 = require("../rtm/type");
|
|
72
|
-
var _observable = require("agora-foundation/lib/utilities/observable");
|
|
73
70
|
var _domainHolder = require("../services/domain-holder");
|
|
74
|
-
var _decorator = require("agora-foundation/lib/decorator");
|
|
75
|
-
var _env = require("agora-foundation/lib/utilities/env");
|
|
76
71
|
var _type3 = require("../scene/type");
|
|
77
72
|
var _api = require("../services/api");
|
|
78
73
|
var _parameters = require("../utilities/parameters");
|
|
79
74
|
var _packageInfo = require("../utilities/package-info");
|
|
75
|
+
var _restfulClient = require("../../plugin/restful-client");
|
|
76
|
+
var _monitor = require("../../plugin/monitor");
|
|
77
|
+
var _apDetector = require("./ap-detector");
|
|
80
78
|
var _AgoraRteEngine;
|
|
81
79
|
var _initProto;
|
|
82
80
|
function _applyDecs(e, t, r, n, o, a) { function i(e, t, r) { return function (n, o) { return r && r(n), e[t].call(n, o); }; } function c(e, t) { for (var r = 0; r < e.length; r++) e[r].call(t); return t; } function s(e, t, r, n) { if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); return e; } function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { function m(e) { if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } var y, v = t[0], g = t[3], b = !u; if (!b) { r || Array.isArray(v) || (v = [v]); var w = {}, S = [], A = 3 === o ? "get" : 4 === o || d ? "set" : "value"; f ? (p || d ? w = { get: _setFunctionName(function () { return g(this); }, n, "get"), set: function set(e) { t[4](this, e); } } : w[A] = g, p || _setFunctionName(w[A], n, 2 === o ? "" : A)) : p || (w = Object.getOwnPropertyDescriptor(e, n)); } for (var P = e, j = v.length - 1; j >= 0; j -= r ? 2 : 1) { var D = v[j], E = r ? v[j - 1] : void 0, I = {}, O = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: n, metadata: a, addInitializer: function (e, t) { if (e.v) throw Error("attempted to call addInitializer after decoration was finished"); s(t, "An initializer", "be", !0), c.push(t); }.bind(null, I) }; try { if (b) (y = s(D.call(E, P, O), "class decorators", "return")) && (P = y);else { var k, F; O["static"] = l, O["private"] = f, f ? 2 === o ? k = function k(e) { return m(e), w.value; } : (o < 4 && (k = i(w, "get", m)), 3 !== o && (F = i(w, "set", m))) : (k = function k(e) { return e[n]; }, (o < 2 || 4 === o) && (F = function F(e, t) { e[n] = t; })); var N = O.access = { has: f ? h.bind() : function (e) { return n in e; } }; if (k && (N.get = k), F && (N.set = F), P = D.call(E, d ? { get: w.get, set: w.set } : w[A], O), d) { if ("object" == _typeof(P) && P) (y = s(P.get, "accessor.get")) && (w.get = y), (y = s(P.set, "accessor.set")) && (w.set = y), (y = s(P.init, "accessor.init")) && S.push(y);else if (void 0 !== P) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); } else s(P, (p ? "field" : "method") + " decorators", "return") && (p ? S.push(P) : w[A] = P); } } finally { I.v = !0; } } return (p || d) && u.push(function (e, t) { for (var r = S.length - 1; r >= 0; r--) t = S[r].call(e, t); return t; }), p || b || (f ? d ? u.push(i(w, "get"), i(w, "set")) : u.push(2 === o ? w[A] : i.call.bind(w[A])) : Object.defineProperty(e, n, w)), P; } function u(e, t) { return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { configurable: !0, enumerable: !0, value: t }); } if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; var f = Object.create(null == l ? null : l), p = function (e, t, r, n) { var o, a, i = [], s = function s(t) { return _checkInRHS(t) === e; }, u = new Map(); function l(e) { e && i.push(c.bind(null, e)); } for (var f = 0; f < t.length; f++) { var p = t[f]; if (Array.isArray(p)) { var d = p[1], h = p[2], m = p.length > 3, y = 16 & d, v = !!(8 & d), g = 0 == (d &= 7), b = h + "/" + v; if (!g && !m) { var w = u.get(b); if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); u.set(b, !(d > 2) || d); } applyDec(v ? e : e.prototype, p, y, m ? "#" + h : _toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); } } return l(o), l(a), i; }(e, t, o, f); return r.length || u(e, f), { e: p, get c() { var t = []; return r.length && [u(applyDec(e, [r], n, e.name, 5, f, t), f), c.bind(null, t, e)]; } }; }
|
|
@@ -87,8 +85,8 @@ function _checkInRHS(e) { if (Object(e) !== e) throw TypeError("right-hand side
|
|
|
87
85
|
var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
88
86
|
function AgoraRteEngine(config) {
|
|
89
87
|
(0, _classCallCheck2["default"])(this, AgoraRteEngine);
|
|
90
|
-
(0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0,
|
|
91
|
-
(0, _defineProperty2["default"])(this, "_observable", new
|
|
88
|
+
(0, _defineProperty2["default"])(this, "logger", (_initProto(this), (0, _imports.getLogger)()));
|
|
89
|
+
(0, _defineProperty2["default"])(this, "_observable", new _imports.AgoraObservable());
|
|
92
90
|
(0, _defineProperty2["default"])(this, "_rtmClientObserver", {
|
|
93
91
|
onConnectionStateUpdated: this._handleConnectionStateUpdated.bind(this),
|
|
94
92
|
onPeerMessageReceived: this._handlePeerMessageReceived.bind(this)
|
|
@@ -96,10 +94,10 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
96
94
|
(0, _defineProperty2["default"])(this, "_pluginManager", (0, _plugin.getPluginManager)());
|
|
97
95
|
(0, _domainHolder.resetSharedDomainHolder)();
|
|
98
96
|
this._config = (0, _clone.cloneDeep)(config);
|
|
99
|
-
(0,
|
|
97
|
+
(0, _imports.setupConsoleHijack)(this.logger);
|
|
100
98
|
this.logger.info('[AgoraRteEngine] RTE engine is created, version: ', this.getVersion());
|
|
101
99
|
this._pluginManager.callInitialize(this._config);
|
|
102
|
-
if ((0,
|
|
100
|
+
if ((0, _imports.isElectron)()) {
|
|
103
101
|
this._rtcClient = (0, _registry.getRegistry)('electron-rtc-client');
|
|
104
102
|
} else {
|
|
105
103
|
this._rtcClient = (0, _registry.getRegistry)('web-rtc-client');
|
|
@@ -116,7 +114,7 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
116
114
|
userId: this._config.userId,
|
|
117
115
|
token: this._config.token
|
|
118
116
|
});
|
|
119
|
-
this._restfulClient = new
|
|
117
|
+
this._restfulClient = new _restfulClient.AgoraRestfulClientImpl(this._httpAuthHeadersProvider, (0, _domainHolder.getSharedDomainHolder)(this._config.rteRegion));
|
|
120
118
|
this._apiService = new _api.AgoraRteServiceApi(this._restfulClient, this._config.appId, this._config.rteRegion, !(0, _parameters.isEndpointRegionDisabled)(config.parameters));
|
|
121
119
|
this._monitor = new _monitor.AgoraRteMonitorImpl({
|
|
122
120
|
appId: this._config.appId,
|
|
@@ -131,6 +129,9 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
131
129
|
if (config.parameters) {
|
|
132
130
|
this.setParameters(config.parameters);
|
|
133
131
|
}
|
|
132
|
+
var externalRtcConfig = (0, _imports.isElectron)() ? (0, _parameters.getRtcExternaApConfig)(config.parameters) : (0, _parameters.getRtcWebExternaApConfig)(config.parameters);
|
|
133
|
+
var internalRtcConfig = (0, _imports.isElectron)() ? (0, _parameters.getRtcInternaApConfig)(config.parameters) : (0, _parameters.getRtcWebInternaApConfig)(config.parameters);
|
|
134
|
+
this._apDetector = new _apDetector.AgoraRteApDetectorImpl(internalRtcConfig, externalRtcConfig);
|
|
134
135
|
}
|
|
135
136
|
return (0, _createClass2["default"])(AgoraRteEngine, [{
|
|
136
137
|
key: "login",
|
|
@@ -188,13 +189,15 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
188
189
|
var rteScene = new _scene.AgoraRteScene(config.sceneId, {
|
|
189
190
|
rtcClient: this._rtcClient,
|
|
190
191
|
rtmClient: this._rtmClient,
|
|
192
|
+
apDetector: this._apDetector,
|
|
191
193
|
apiService: this._apiService,
|
|
192
194
|
appId: this._config.appId,
|
|
193
195
|
region: this._config.rteRegion
|
|
194
196
|
});
|
|
195
|
-
this.
|
|
196
|
-
|
|
197
|
-
|
|
197
|
+
this._rtcClient.sourceManager.addObserver({
|
|
198
|
+
onCameraStateUpdated: rteScene.onCameraVideoStateUpdated,
|
|
199
|
+
onMicrophoneStateUpdated: rteScene.onMicrophoneAudioStateUpdated,
|
|
200
|
+
onLoopbackStateUpdated: rteScene.onLoopbackAudioStateUpdated
|
|
198
201
|
});
|
|
199
202
|
return rteScene;
|
|
200
203
|
}
|
|
@@ -253,7 +256,7 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
253
256
|
value: function release() {
|
|
254
257
|
this._pluginManager.callRelease();
|
|
255
258
|
this._monitor.release();
|
|
256
|
-
(0,
|
|
259
|
+
(0, _imports.restoreConsoleHijack)();
|
|
257
260
|
}
|
|
258
261
|
}, {
|
|
259
262
|
key: "addObserver",
|
|
@@ -292,6 +295,9 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
292
295
|
break;
|
|
293
296
|
}
|
|
294
297
|
this._observable.notifyObservers('onConnectionStateUpdated', rteConnState);
|
|
298
|
+
if (rteConnState === _type.AgoraRteConnectionState.ABORTED) {
|
|
299
|
+
this.logout();
|
|
300
|
+
}
|
|
295
301
|
}
|
|
296
302
|
}, {
|
|
297
303
|
key: "_handlePeerMessageReceived",
|
|
@@ -317,7 +323,7 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function () {
|
|
|
317
323
|
}]);
|
|
318
324
|
}();
|
|
319
325
|
_AgoraRteEngine = AgoraRteEngine;
|
|
320
|
-
var _applyDecs$e = _applyDecs(_AgoraRteEngine, [[
|
|
326
|
+
var _applyDecs$e = _applyDecs(_AgoraRteEngine, [[_imports.trace, 2, "login"], [_imports.trace, 2, "logout"], [_imports.trace, 2, "createScene"], [_imports.trace, 2, "sendPeerMessage"], [_imports.trace, 2, "setParameters"], [_imports.trace, 2, "release"]], []).e;
|
|
321
327
|
var _applyDecs$e2 = (0, _slicedToArray2["default"])(_applyDecs$e, 1);
|
|
322
328
|
_initProto = _applyDecs$e2[0];
|
|
323
329
|
_applyDecs$e;
|
|
@@ -43,7 +43,7 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
|
43
43
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
44
44
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
45
45
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
46
|
-
var
|
|
46
|
+
var _imports = require("../../imports");
|
|
47
47
|
var AgoraRtePluginManager = /*#__PURE__*/function () {
|
|
48
48
|
function AgoraRtePluginManager() {
|
|
49
49
|
(0, _classCallCheck2["default"])(this, AgoraRtePluginManager);
|
|
@@ -78,7 +78,7 @@ var getPluginManager = exports.getPluginManager = function getPluginManager() {
|
|
|
78
78
|
return pluginManager;
|
|
79
79
|
};
|
|
80
80
|
var registerPlugin = exports.registerPlugin = function registerPlugin(plugin) {
|
|
81
|
-
var logger = (0,
|
|
81
|
+
var logger = (0, _imports.getLogger)();
|
|
82
82
|
logger.info('Register plugin:', plugin.name);
|
|
83
83
|
getPluginManager().registerPlugin(plugin);
|
|
84
84
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgoraObservable } from '
|
|
1
|
+
import { AgoraObservable } from '../../imports';
|
|
2
2
|
import { AgoraRtcClient } from '../rtc';
|
|
3
3
|
import { AgoraRteObservableTrack } from './type';
|
|
4
4
|
export declare abstract class AgoraRteBaseTrack<T> implements AgoraRteObservableTrack<T> {
|
|
@@ -9,11 +9,11 @@ exports.AgoraRteBaseTrack = void 0;
|
|
|
9
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var
|
|
12
|
+
var _imports = require("../../imports");
|
|
13
13
|
var AgoraRteBaseTrack = exports.AgoraRteBaseTrack = /*#__PURE__*/function () {
|
|
14
14
|
function AgoraRteBaseTrack(_rtcClient) {
|
|
15
15
|
(0, _classCallCheck2["default"])(this, AgoraRteBaseTrack);
|
|
16
|
-
(0, _defineProperty2["default"])(this, "trackObservable", new
|
|
16
|
+
(0, _defineProperty2["default"])(this, "trackObservable", new _imports.AgoraObservable());
|
|
17
17
|
this._rtcClient = _rtcClient;
|
|
18
18
|
}
|
|
19
19
|
return (0, _createClass2["default"])(AgoraRteBaseTrack, [{
|
|
@@ -33,12 +33,12 @@ export interface AgoraRteCameraVideoTrack extends AgoraRteObservableTrack<AgoraR
|
|
|
33
33
|
* @param config The configuration for the video render.
|
|
34
34
|
* @param view The HTML element to render the video on.
|
|
35
35
|
*/
|
|
36
|
-
startPreview(config: AgoraRteVideoRenderConfig, view:
|
|
36
|
+
startPreview(config: AgoraRteVideoRenderConfig, view: unknown): void;
|
|
37
37
|
/**
|
|
38
38
|
* Stops the camera preview.
|
|
39
39
|
* @param view The HTML element to render the video on.
|
|
40
40
|
*/
|
|
41
|
-
stopPreview(view:
|
|
41
|
+
stopPreview(view: unknown): void;
|
|
42
42
|
/**
|
|
43
43
|
* Starts the camera test.
|
|
44
44
|
*/
|