@rongcloud/plugin-rtc 5.6.3-alpha.7 → 5.6.4-alpha.1
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/dist/index.d.ts +3 -3
- package/dist/index.esm.js +127 -112
- package/dist/index.js +127 -112
- package/dist/index.umd.js +127 -112
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* RCRTC - v5.6.
|
|
3
|
-
* CommitId -
|
|
4
|
-
* Fri Nov
|
|
2
|
+
* RCRTC - v5.6.4-alpha.1
|
|
3
|
+
* CommitId - 568df307dd985346dd4af574ecc9b4e5577ecd59
|
|
4
|
+
* Fri Nov 25 2022 18:55:25 GMT+0800 (中国标准时间)
|
|
5
5
|
* ©2020 RongCloud, Inc. All rights reserved.
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter, BasicLogger, INaviInfo, RTCPluginContext, AbsCodec, IPromiseResult, ErrorCode, KVString, IRuntime, IAsyncRes, ConnectionStatus, ConversationType, ISendMsgOptions, IReceivedMessage, EnableLogL, IPluginGenerator } from '@rongcloud/engine';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* RCRTC - v5.6.
|
|
3
|
-
* CommitId -
|
|
4
|
-
* Fri Nov
|
|
2
|
+
* RCRTC - v5.6.4-alpha.1
|
|
3
|
+
* CommitId - 568df307dd985346dd4af574ecc9b4e5577ecd59
|
|
4
|
+
* Fri Nov 25 2022 18:55:25 GMT+0800 (中国标准时间)
|
|
5
5
|
* ©2020 RongCloud, Inc. All rights reserved.
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter, isNumber, validate, isObject as isObject$1, ErrorCode, HttpMethod, isArray, ConnectionStatus, notEmptyObject, notEmptyArray, notEmptyString, isString, RTCMode as RTCMode$1, assert, ConversationType, isHttpUrl, isBoolean, isUndefined, forEach, VersionManage, LogL } from '@rongcloud/engine';
|
|
@@ -6800,30 +6800,33 @@ class RCTrack extends EventEmitter {
|
|
|
6800
6800
|
* @param volume 有效值为 0-100
|
|
6801
6801
|
*/
|
|
6802
6802
|
play(element, options) {
|
|
6803
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
6803
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
6804
6804
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6805
6805
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_TRACK_PLAY_O, JSON.stringify({
|
|
6806
6806
|
element,
|
|
6807
6807
|
options,
|
|
6808
|
+
kind: (_b = this._kind) !== null && _b !== void 0 ? _b : '',
|
|
6808
6809
|
msg: `start play trackId: ${this._id}`,
|
|
6809
6810
|
}));
|
|
6810
6811
|
if (!this._msTrack) {
|
|
6811
|
-
(
|
|
6812
|
+
(_c = this._logger) === null || _c === void 0 ? void 0 : _c.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6812
6813
|
status: RCLoggerStatus.FAILED,
|
|
6813
6814
|
code: RCRTCCode.TRACK_NOT_READY,
|
|
6815
|
+
kind: (_d = this._kind) !== null && _d !== void 0 ? _d : '',
|
|
6814
6816
|
msg: `the track is not ready to play -> id: ${this._id}`,
|
|
6815
6817
|
}));
|
|
6816
6818
|
return { code: RCRTCCode.TRACK_NOT_READY };
|
|
6817
6819
|
}
|
|
6818
6820
|
if (this._msTrack.readyState === 'ended') {
|
|
6819
|
-
(
|
|
6821
|
+
(_e = this._logger) === null || _e === void 0 ? void 0 : _e.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6820
6822
|
status: RCLoggerStatus.FAILED,
|
|
6823
|
+
kind: (_f = this._kind) !== null && _f !== void 0 ? _f : '',
|
|
6821
6824
|
msg: `the track's readyState is ended -> id: ${this._id}`,
|
|
6822
6825
|
}));
|
|
6823
6826
|
}
|
|
6824
6827
|
if (options === null || options === void 0 ? void 0 : options.volume) {
|
|
6825
6828
|
if (!isNumber(options === null || options === void 0 ? void 0 : options.volume)) {
|
|
6826
|
-
(
|
|
6829
|
+
(_g = this._logger) === null || _g === void 0 ? void 0 : _g.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6827
6830
|
status: RCLoggerStatus.FAILED,
|
|
6828
6831
|
code: RCRTCCode.PARAMS_ERROR,
|
|
6829
6832
|
msg: 'params error -> options.volume not a number',
|
|
@@ -6832,7 +6835,7 @@ class RCTrack extends EventEmitter {
|
|
|
6832
6835
|
}
|
|
6833
6836
|
if ((options === null || options === void 0 ? void 0 : options.volume) < 0) {
|
|
6834
6837
|
options.volume = 0;
|
|
6835
|
-
(
|
|
6838
|
+
(_h = this._logger) === null || _h === void 0 ? void 0 : _h.warn(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6836
6839
|
status: RCLoggerStatus.FAILED,
|
|
6837
6840
|
msg: 'params error -> options.volume < 0',
|
|
6838
6841
|
tips: 'the valid range of options.volume is 0-100, the value of volume has been set 0',
|
|
@@ -6840,7 +6843,7 @@ class RCTrack extends EventEmitter {
|
|
|
6840
6843
|
}
|
|
6841
6844
|
if ((options === null || options === void 0 ? void 0 : options.volume) > 100) {
|
|
6842
6845
|
options.volume = 100;
|
|
6843
|
-
(
|
|
6846
|
+
(_j = this._logger) === null || _j === void 0 ? void 0 : _j.warn(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6844
6847
|
status: RCLoggerStatus.FAILED,
|
|
6845
6848
|
msg: 'params error -> options.volume > 100',
|
|
6846
6849
|
tips: 'the valid range of options.volume is 0-100, the value of volume has been set 100',
|
|
@@ -6854,7 +6857,7 @@ class RCTrack extends EventEmitter {
|
|
|
6854
6857
|
const deviceIds = (yield device.getSpeakers()).map((item) => item.deviceId);
|
|
6855
6858
|
const isValid = deviceIds.includes(options.audioDeviceId);
|
|
6856
6859
|
if (!isValid) {
|
|
6857
|
-
(
|
|
6860
|
+
(_k = this._logger) === null || _k === void 0 ? void 0 : _k.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6858
6861
|
status: RCLoggerStatus.FAILED,
|
|
6859
6862
|
code: RCRTCCode.PARAMS_ERROR,
|
|
6860
6863
|
msg: 'params error -> options.audioDeviceId',
|
|
@@ -6865,9 +6868,10 @@ class RCTrack extends EventEmitter {
|
|
|
6865
6868
|
const isVideoTrack = this.isVideoTrack();
|
|
6866
6869
|
// video 播放必须传递一个 HTMLVideoElement 实例作为 video track 的播放组件
|
|
6867
6870
|
if (isVideoTrack && (!element || !(element instanceof HTMLVideoElement || this.__validateVideoNodeName(element)))) {
|
|
6868
|
-
(
|
|
6871
|
+
(_l = this._logger) === null || _l === void 0 ? void 0 : _l.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6869
6872
|
status: RCLoggerStatus.FAILED,
|
|
6870
6873
|
code: RCRTCCode.VIDEO_TRACK_MISS_MEDIA_ELEMENT,
|
|
6874
|
+
kind: (_m = this._kind) !== null && _m !== void 0 ? _m : '',
|
|
6871
6875
|
msg: 'params element is not a HTMLVideoElement',
|
|
6872
6876
|
}));
|
|
6873
6877
|
return { code: RCRTCCode.VIDEO_TRACK_MISS_MEDIA_ELEMENT };
|
|
@@ -6881,73 +6885,81 @@ class RCTrack extends EventEmitter {
|
|
|
6881
6885
|
this._element.pause();
|
|
6882
6886
|
}
|
|
6883
6887
|
this._element.onloadstart = (evt) => {
|
|
6884
|
-
var _a, _b;
|
|
6888
|
+
var _a, _b, _c;
|
|
6885
6889
|
// 开始寻找资源
|
|
6886
6890
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_TRACK_LOAD_START_O, JSON.stringify({
|
|
6887
6891
|
status: RCLoggerStatus.INFO,
|
|
6888
|
-
|
|
6892
|
+
kind: (_b = this._kind) !== null && _b !== void 0 ? _b : '',
|
|
6893
|
+
msg: `HTMLMediaElement onloadstart -> id: ${(_c = evt.target) === null || _c === void 0 ? void 0 : _c.id}, trackId: ${this._id}`,
|
|
6889
6894
|
}));
|
|
6890
6895
|
};
|
|
6891
6896
|
this._element.ondurationchange = (evt) => {
|
|
6892
|
-
var _a, _b;
|
|
6897
|
+
var _a, _b, _c;
|
|
6893
6898
|
// 时长变更
|
|
6894
6899
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_TRACK_DURATION_CHANGE_O, JSON.stringify({
|
|
6895
6900
|
status: RCLoggerStatus.INFO,
|
|
6896
|
-
|
|
6901
|
+
kind: (_b = this._kind) !== null && _b !== void 0 ? _b : '',
|
|
6902
|
+
msg: `HTMLMediaElement ondurationchange -> id: ${(_c = evt.target) === null || _c === void 0 ? void 0 : _c.id}, trackId: ${this._id}`,
|
|
6897
6903
|
}));
|
|
6898
6904
|
};
|
|
6899
6905
|
this._element.onloadedmetadata = (evt) => {
|
|
6900
|
-
var _a, _b;
|
|
6906
|
+
var _a, _b, _c;
|
|
6901
6907
|
// 元数据加载完成
|
|
6902
6908
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_TRACK_LOADED_META_DATA_O, JSON.stringify({
|
|
6903
6909
|
status: RCLoggerStatus.INFO,
|
|
6904
|
-
|
|
6910
|
+
kind: (_b = this._kind) !== null && _b !== void 0 ? _b : '',
|
|
6911
|
+
msg: `HTMLMediaElement onloadedmetadata -> id: ${(_c = evt.target) === null || _c === void 0 ? void 0 : _c.id}, trackId: ${this._id}`,
|
|
6905
6912
|
}));
|
|
6906
6913
|
};
|
|
6907
6914
|
this._element.onloadeddata = (evt) => {
|
|
6908
|
-
var _a, _b;
|
|
6915
|
+
var _a, _b, _c;
|
|
6909
6916
|
// 首帧加载完成
|
|
6910
6917
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_TRACK_LOADED_DATA_O, JSON.stringify({
|
|
6911
6918
|
status: RCLoggerStatus.INFO,
|
|
6912
|
-
|
|
6919
|
+
kind: (_b = this._kind) !== null && _b !== void 0 ? _b : '',
|
|
6920
|
+
msg: `HTMLMediaElement onloadeddata -> id: ${(_c = evt.target) === null || _c === void 0 ? void 0 : _c.id}, trackId: ${this._id}`,
|
|
6913
6921
|
}));
|
|
6914
6922
|
};
|
|
6915
6923
|
this._element.onabort = (evt) => {
|
|
6916
|
-
var _a, _b;
|
|
6924
|
+
var _a, _b, _c;
|
|
6917
6925
|
// 中止
|
|
6918
6926
|
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_TRACK_ABORT_O, JSON.stringify({
|
|
6919
6927
|
status: RCLoggerStatus.INFO,
|
|
6920
|
-
|
|
6928
|
+
kind: (_b = this._kind) !== null && _b !== void 0 ? _b : '',
|
|
6929
|
+
msg: `HTMLMediaElement onabort -> id: ${(_c = evt.target) === null || _c === void 0 ? void 0 : _c.id}, trackId: ${this._id}`,
|
|
6921
6930
|
}));
|
|
6922
6931
|
};
|
|
6923
6932
|
this._element.oncanplay = (evt) => __awaiter(this, void 0, void 0, function* () {
|
|
6924
|
-
var
|
|
6933
|
+
var _p, _q, _r, _s, _t, _u, _v, _w;
|
|
6925
6934
|
// 可以播放
|
|
6926
|
-
(
|
|
6935
|
+
(_p = this._logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_TRACK_CANPLAY_O, JSON.stringify({
|
|
6927
6936
|
status: RCLoggerStatus.INFO,
|
|
6928
|
-
|
|
6937
|
+
kind: (_q = this._kind) !== null && _q !== void 0 ? _q : '',
|
|
6938
|
+
msg: `HTMLMediaElement oncanplay -> id: ${(_r = evt.target) === null || _r === void 0 ? void 0 : _r.id}, trackId: ${this._id}`,
|
|
6929
6939
|
}));
|
|
6930
6940
|
try {
|
|
6931
6941
|
if ((options === null || options === void 0 ? void 0 : options.audioDeviceId) && !isVideoTrack) {
|
|
6932
6942
|
yield this._element.setSinkId(options.audioDeviceId);
|
|
6933
6943
|
}
|
|
6934
|
-
yield ((
|
|
6944
|
+
yield ((_s = this._element) === null || _s === void 0 ? void 0 : _s.play());
|
|
6935
6945
|
}
|
|
6936
6946
|
catch (error) {
|
|
6937
6947
|
/**
|
|
6938
6948
|
* 检测是否有设置音频输出设备的权限
|
|
6939
6949
|
*/
|
|
6940
6950
|
if (error.message === 'No permission to use requested device') {
|
|
6941
|
-
(
|
|
6951
|
+
(_t = this._logger) === null || _t === void 0 ? void 0 : _t.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6942
6952
|
status: RCLoggerStatus.FAILED,
|
|
6953
|
+
kind: (_u = this._kind) !== null && _u !== void 0 ? _u : '',
|
|
6943
6954
|
code: RCRTCCode.NO_PERMISSION_TO_USE_REQUESTED_DEVICE,
|
|
6944
6955
|
msg: `setSinkId failed, error msg: ${error.message}`,
|
|
6945
6956
|
}));
|
|
6946
6957
|
return;
|
|
6947
6958
|
}
|
|
6948
|
-
(
|
|
6959
|
+
(_v = this._logger) === null || _v === void 0 ? void 0 : _v.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6949
6960
|
status: RCLoggerStatus.FAILED,
|
|
6950
6961
|
code: RCRTCCode.TRACK_PLAY_ERROR,
|
|
6962
|
+
kind: (_w = this._kind) !== null && _w !== void 0 ? _w : '',
|
|
6951
6963
|
msg: `play error, error msg: ${error.message}`,
|
|
6952
6964
|
}));
|
|
6953
6965
|
}
|
|
@@ -6977,7 +6989,7 @@ class RCTrack extends EventEmitter {
|
|
|
6977
6989
|
this._element.volume = (options === null || options === void 0 ? void 0 : options.volume) / 100;
|
|
6978
6990
|
}
|
|
6979
6991
|
// 添加标签ID
|
|
6980
|
-
(
|
|
6992
|
+
(_o = this._element) === null || _o === void 0 ? void 0 : _o.setAttribute(this.DataTrackId, this.getTrackId());
|
|
6981
6993
|
return { code: RCRTCCode.SUCCESS };
|
|
6982
6994
|
});
|
|
6983
6995
|
}
|
|
@@ -14800,7 +14812,7 @@ const getCommonHeader$1 = () => ({
|
|
|
14800
14812
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
14801
14813
|
'Cache-Control': 'no-cache',
|
|
14802
14814
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
14803
|
-
ClientVersion: "5.6.
|
|
14815
|
+
ClientVersion: "5.6.4-alpha.1",
|
|
14804
14816
|
'Client-Session-Id': getUUID(),
|
|
14805
14817
|
'Request-Id': Date.now().toString(),
|
|
14806
14818
|
});
|
|
@@ -15376,7 +15388,7 @@ const getCommonHeader = () => ({
|
|
|
15376
15388
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
15377
15389
|
'Cache-Control': 'no-cache',
|
|
15378
15390
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
15379
|
-
ClientVersion: "5.6.
|
|
15391
|
+
ClientVersion: "5.6.4-alpha.1",
|
|
15380
15392
|
'Client-Session-Id': getUUID(),
|
|
15381
15393
|
'Request-Id': Date.now().toString(),
|
|
15382
15394
|
});
|
|
@@ -15547,9 +15559,8 @@ class RCMediaService {
|
|
|
15547
15559
|
const jsonBody = /x-www-form-urlencoded/.test(mergeHeaders['Content-Type']) ? body : JSON.stringify(body);
|
|
15548
15560
|
const reqId = commonHeader['Request-Id'];
|
|
15549
15561
|
(_e = (_d = this._context) === null || _d === void 0 ? void 0 : _d.logger) === null || _e === void 0 ? void 0 : _e.info(RCLoggerTag.L_MEDIA_SERVICE_REQUEST_T, JSON.stringify({
|
|
15550
|
-
url
|
|
15562
|
+
url,
|
|
15551
15563
|
'Request-Id': reqId,
|
|
15552
|
-
timeout: this._timeout,
|
|
15553
15564
|
}), traceId);
|
|
15554
15565
|
const { status, data } = yield this._runtime.httpReq({
|
|
15555
15566
|
url,
|
|
@@ -15584,6 +15595,7 @@ class RCMediaService {
|
|
|
15584
15595
|
(_j = (_h = this._context) === null || _h === void 0 ? void 0 : _h.logger) === null || _j === void 0 ? void 0 : _j.error(RCLoggerTag.L_MEDIA_SERVICE_REQUEST_R, JSON.stringify({
|
|
15585
15596
|
status: RCLoggerStatus.FAILED,
|
|
15586
15597
|
msg: `request error -> Request-Id: ${reqId}, status: ${status}, url: ${url}`,
|
|
15598
|
+
timeout: this._timeout,
|
|
15587
15599
|
}), traceId);
|
|
15588
15600
|
}
|
|
15589
15601
|
return { code: RCRTCCode.REQUEST_FAILED };
|
|
@@ -15613,8 +15625,10 @@ class RCMediaService {
|
|
|
15613
15625
|
* 退出房间
|
|
15614
15626
|
*/
|
|
15615
15627
|
exit(headers) {
|
|
15628
|
+
var _a, _b;
|
|
15616
15629
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15617
|
-
const
|
|
15630
|
+
const traceId = (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId();
|
|
15631
|
+
const { code } = yield this._request('/exit', headers, {}, traceId);
|
|
15618
15632
|
return code;
|
|
15619
15633
|
});
|
|
15620
15634
|
}
|
|
@@ -15622,14 +15636,18 @@ class RCMediaService {
|
|
|
15622
15636
|
* 观众端订阅主播资源
|
|
15623
15637
|
*/
|
|
15624
15638
|
broadcastSubscribe(headers, body) {
|
|
15625
|
-
|
|
15639
|
+
var _a, _b;
|
|
15640
|
+
const traceId = (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId();
|
|
15641
|
+
return this._request('/broadcast/subscribe', headers, body, traceId);
|
|
15626
15642
|
}
|
|
15627
15643
|
/**
|
|
15628
15644
|
* 观众端退出订阅
|
|
15629
15645
|
*/
|
|
15630
15646
|
broadcastExit(headers) {
|
|
15647
|
+
var _a, _b;
|
|
15631
15648
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15632
|
-
const
|
|
15649
|
+
const traceId = (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId();
|
|
15650
|
+
const { code } = yield this._request('/broadcast/exit', headers, {}, traceId);
|
|
15633
15651
|
return { code };
|
|
15634
15652
|
});
|
|
15635
15653
|
}
|
|
@@ -17166,25 +17184,37 @@ class ASdpStrategy {
|
|
|
17166
17184
|
return result;
|
|
17167
17185
|
}
|
|
17168
17186
|
setRemoteAnswer(sdp) {
|
|
17169
|
-
var _a, _b;
|
|
17187
|
+
var _a, _b, _c;
|
|
17170
17188
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17171
17189
|
// 过滤行末的空格,服务可能产生空格数据
|
|
17172
17190
|
sdp = ASdpBuilder.trimBlankLine(sdp);
|
|
17173
17191
|
if (this._peer.connectionState === 'disconnected'
|
|
17174
17192
|
|| this._peer.connectionState === 'closed') {
|
|
17193
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O, JSON.stringify({
|
|
17194
|
+
status: RCLoggerStatus.FAILED,
|
|
17195
|
+
msg: `peer.connectionState is ${this._peer.connectionState}`,
|
|
17196
|
+
}));
|
|
17175
17197
|
return RCRTCCode.SET_REMOTE_DESCRIPTION_FAILED;
|
|
17176
17198
|
}
|
|
17199
|
+
// if (this._peer.signalingState !== 'have-local-offer') {
|
|
17200
|
+
// // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/signalingState
|
|
17201
|
+
// this._logger?.info(RCLoggerTag.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O, JSON.stringify({
|
|
17202
|
+
// status: RCLoggerStatus.FAILED,
|
|
17203
|
+
// msg: `peer.signalingState is ${this._peer.signalingState}`,
|
|
17204
|
+
// }));
|
|
17205
|
+
// return RCRTCCode.SET_REMOTE_DESCRIPTION_FAILED;
|
|
17206
|
+
// }
|
|
17177
17207
|
try {
|
|
17178
17208
|
yield this._peer.setRemoteDescription({ type: 'answer', sdp });
|
|
17179
17209
|
}
|
|
17180
17210
|
catch (error) {
|
|
17181
|
-
(
|
|
17211
|
+
(_b = this._logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O, JSON.stringify({
|
|
17182
17212
|
status: RCLoggerStatus.FAILED,
|
|
17183
17213
|
msg: error,
|
|
17184
17214
|
}));
|
|
17185
17215
|
return RCRTCCode.SET_REMOTE_DESCRIPTION_FAILED;
|
|
17186
17216
|
}
|
|
17187
|
-
(
|
|
17217
|
+
(_c = this._logger) === null || _c === void 0 ? void 0 : _c.info(RCLoggerTag.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O, JSON.stringify({
|
|
17188
17218
|
status: RCLoggerStatus.SUCCESSED,
|
|
17189
17219
|
sdp,
|
|
17190
17220
|
}));
|
|
@@ -18684,7 +18714,7 @@ class PolarisReporter {
|
|
|
18684
18714
|
* 加入房间
|
|
18685
18715
|
*/
|
|
18686
18716
|
sendR1() {
|
|
18687
|
-
const rtcVersion = "5.6.
|
|
18717
|
+
const rtcVersion = "5.6.4-alpha.1";
|
|
18688
18718
|
const imVersion = this._context.getCoreVersion();
|
|
18689
18719
|
const platform = 'web';
|
|
18690
18720
|
const pcName = navigator.platform;
|
|
@@ -18834,7 +18864,7 @@ class PolarisHttpReporter {
|
|
|
18834
18864
|
_formatR1Data() {
|
|
18835
18865
|
return {
|
|
18836
18866
|
joinTime: this._context.userJoinTime || 0,
|
|
18837
|
-
rtcVersion: "5.6.
|
|
18867
|
+
rtcVersion: "5.6.4-alpha.1",
|
|
18838
18868
|
imVersion: this._context.getCoreVersion(),
|
|
18839
18869
|
platform: 'web',
|
|
18840
18870
|
device: navigator.platform,
|
|
@@ -19732,12 +19762,13 @@ class BaseInvoker {
|
|
|
19732
19762
|
this._busy = true;
|
|
19733
19763
|
const { command, resolve, reject } = this._queue.shift();
|
|
19734
19764
|
let res;
|
|
19765
|
+
const kinds = this._queue.map((item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.command) === null || _a === void 0 ? void 0 : _a.kind; });
|
|
19735
19766
|
const traceId = (_a = this.context.logger) === null || _a === void 0 ? void 0 : _a.createTraceId();
|
|
19736
19767
|
try {
|
|
19737
19768
|
/**
|
|
19738
19769
|
* 说明:由于是先弹出 再执行 Command,所以不存在 在队列中正在执行的任务
|
|
19739
19770
|
*/
|
|
19740
|
-
(_b = this.context.logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_INVOKER_EXECUTE_T, `commandKind: ${command.kind},
|
|
19771
|
+
(_b = this.context.logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_INVOKER_EXECUTE_T, `commandKind: ${command.kind}, kinds:${kinds.join(',')}, length: ${this._queue.length}`, traceId);
|
|
19741
19772
|
res = yield command.execute(this._store, this);
|
|
19742
19773
|
}
|
|
19743
19774
|
catch (error) {
|
|
@@ -19745,6 +19776,7 @@ class BaseInvoker {
|
|
|
19745
19776
|
error,
|
|
19746
19777
|
status: RCLoggerStatus.FAILED,
|
|
19747
19778
|
commandKind: command.kind,
|
|
19779
|
+
kinds: kinds.join(','),
|
|
19748
19780
|
}), traceId);
|
|
19749
19781
|
reject(error);
|
|
19750
19782
|
this._next();
|
|
@@ -19761,7 +19793,7 @@ class BaseInvoker {
|
|
|
19761
19793
|
(_a = this.context.logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_INVOKER_PUSH_O, JSON.stringify({
|
|
19762
19794
|
isDestroyed: this._isDestroyed,
|
|
19763
19795
|
commandKind: command.kind,
|
|
19764
|
-
|
|
19796
|
+
length: this._queue.length,
|
|
19765
19797
|
}));
|
|
19766
19798
|
// 房间已销毁
|
|
19767
19799
|
if (this._isDestroyed) {
|
|
@@ -20991,52 +21023,6 @@ class SubscribeCommand extends BaseCommand {
|
|
|
20991
21023
|
}
|
|
20992
21024
|
}
|
|
20993
21025
|
|
|
20994
|
-
class RetrySignaling {
|
|
20995
|
-
constructor() {
|
|
20996
|
-
/* 类的私有财产。 */
|
|
20997
|
-
this.tasks = [];
|
|
20998
|
-
}
|
|
20999
|
-
/**
|
|
21000
|
-
* 如果未设置 retryHandler,则创建一个新的并返回它。否则,返回现有的。
|
|
21001
|
-
* @returns 重试处理程序
|
|
21002
|
-
*/
|
|
21003
|
-
static handler() {
|
|
21004
|
-
if (!this.retryHandler) {
|
|
21005
|
-
this.retryHandler = new RetrySignaling();
|
|
21006
|
-
}
|
|
21007
|
-
return this.retryHandler;
|
|
21008
|
-
}
|
|
21009
|
-
/**
|
|
21010
|
-
* > `execute` 函数执行 `tasks` 数组中的所有任务,然后销毁 `TaskQueue` 实例
|
|
21011
|
-
*/
|
|
21012
|
-
execute() {
|
|
21013
|
-
for (const task of this.tasks) {
|
|
21014
|
-
task();
|
|
21015
|
-
}
|
|
21016
|
-
this.destroy();
|
|
21017
|
-
}
|
|
21018
|
-
/**
|
|
21019
|
-
* 它接受一个函数作为参数,并返回一个在函数被调用时解析的 Promise
|
|
21020
|
-
* @param {Function} fn - 功能:要执行的功能。
|
|
21021
|
-
* @returns 将解析为传入函数的结果的承诺。
|
|
21022
|
-
*/
|
|
21023
|
-
task(fn) {
|
|
21024
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21025
|
-
return new Promise((resolve) => {
|
|
21026
|
-
this.tasks.push(() => {
|
|
21027
|
-
resolve(fn());
|
|
21028
|
-
});
|
|
21029
|
-
});
|
|
21030
|
-
});
|
|
21031
|
-
}
|
|
21032
|
-
/**
|
|
21033
|
-
* 它从任务数组中删除所有任务
|
|
21034
|
-
*/
|
|
21035
|
-
destroy() {
|
|
21036
|
-
this.tasks = [];
|
|
21037
|
-
}
|
|
21038
|
-
}
|
|
21039
|
-
|
|
21040
21026
|
const PUBLISHSIGNALRETRYTIME = 30 * 1000;
|
|
21041
21027
|
/**
|
|
21042
21028
|
* 资源发布命令
|
|
@@ -21149,7 +21135,7 @@ class PublishCommand extends BaseCommand {
|
|
|
21149
21135
|
pushOtherRooms && (reqBody.pushOtherRooms = pushOtherRooms);
|
|
21150
21136
|
// 缓存发布资源的ssrc和msid
|
|
21151
21137
|
AbstractStatParser.formatSourceIdMapFromSdp(reqBody.sdp.sdp, 'publish');
|
|
21152
|
-
const resp = yield new ExchangeCommand(headers, reqBody).execute(store, invoker);
|
|
21138
|
+
const resp = yield new ExchangeCommand(headers, reqBody, this._traceId).execute(store, invoker);
|
|
21153
21139
|
if (resp.code !== RCRTCCode.SUCCESS) {
|
|
21154
21140
|
// 连通率相关埋点-发布资源结束
|
|
21155
21141
|
reportQualityPublishData(localTracks, resp.code);
|
|
@@ -21254,24 +21240,7 @@ class PublishCommand extends BaseCommand {
|
|
|
21254
21240
|
// 通知房间成员
|
|
21255
21241
|
// 连通率相关埋点-统计扩散耗时
|
|
21256
21242
|
recordPublishSignalTotalData();
|
|
21257
|
-
|
|
21258
|
-
// TIPS: 通知房间成员失败,对信息进行重试操作
|
|
21259
|
-
if (errorCode !== ErrorCode.SUCCESS) {
|
|
21260
|
-
const RetrySignal = RetrySignaling.handler();
|
|
21261
|
-
const startTime = (new Date()).valueOf();
|
|
21262
|
-
const loop = () => __awaiter(this, void 0, void 0, function* () {
|
|
21263
|
-
// 如果当前时间大于 60 秒
|
|
21264
|
-
if ((new Date()).valueOf() - startTime > this.signalRetryTime) {
|
|
21265
|
-
return errorCode;
|
|
21266
|
-
}
|
|
21267
|
-
const code = yield store.context.setRTCTotalRes(roomId, [buildPlusMessage(RCRTCMessageType.PUBLISH, plus)], buildTotalURIMessageContent(allPublishList), RCRTCMessageType.TOTAL_CONTENT_RESOURCE, buildTotalURIMessageContent(crtMcuPublishList));
|
|
21268
|
-
if (code !== ErrorCode.SUCCESS) {
|
|
21269
|
-
yield RetrySignal.task(loop);
|
|
21270
|
-
}
|
|
21271
|
-
return code;
|
|
21272
|
-
});
|
|
21273
|
-
errorCode = yield RetrySignal.task(loop);
|
|
21274
|
-
}
|
|
21243
|
+
const errorCode = yield store.context.setRTCTotalRes(roomId, [buildPlusMessage(RCRTCMessageType.PUBLISH, plus)], buildTotalURIMessageContent(allPublishList), RCRTCMessageType.TOTAL_CONTENT_RESOURCE, buildTotalURIMessageContent(crtMcuPublishList), CDNValueInfo);
|
|
21275
21244
|
if (errorCode !== ErrorCode.SUCCESS) {
|
|
21276
21245
|
// 连通率相关埋点-发布资源结束
|
|
21277
21246
|
reportQualityPublishSignalTotalData(allPublishList, errorCode);
|
|
@@ -21656,7 +21625,7 @@ class RetryExchangeCommand extends BaseCommand {
|
|
|
21656
21625
|
const { pushOtherRooms, headers } = this.retryHook(pcName);
|
|
21657
21626
|
pushOtherRooms && (reqBody.pushOtherRooms = pushOtherRooms);
|
|
21658
21627
|
// 发送 /exchange 请求
|
|
21659
|
-
const resp = yield new ExchangeCommand(headers, reqBody).execute(store, invoker);
|
|
21628
|
+
const resp = yield new ExchangeCommand(headers, reqBody, traceId).execute(store, invoker);
|
|
21660
21629
|
if (resp.code !== RCRTCCode.SUCCESS) {
|
|
21661
21630
|
return;
|
|
21662
21631
|
}
|
|
@@ -27526,6 +27495,52 @@ class RCMediaStreamCapture {
|
|
|
27526
27495
|
}
|
|
27527
27496
|
}
|
|
27528
27497
|
|
|
27498
|
+
class RetrySignaling {
|
|
27499
|
+
constructor() {
|
|
27500
|
+
/* 类的私有财产。 */
|
|
27501
|
+
this.tasks = [];
|
|
27502
|
+
}
|
|
27503
|
+
/**
|
|
27504
|
+
* 如果未设置 retryHandler,则创建一个新的并返回它。否则,返回现有的。
|
|
27505
|
+
* @returns 重试处理程序
|
|
27506
|
+
*/
|
|
27507
|
+
static handler() {
|
|
27508
|
+
if (!this.retryHandler) {
|
|
27509
|
+
this.retryHandler = new RetrySignaling();
|
|
27510
|
+
}
|
|
27511
|
+
return this.retryHandler;
|
|
27512
|
+
}
|
|
27513
|
+
/**
|
|
27514
|
+
* > `execute` 函数执行 `tasks` 数组中的所有任务,然后销毁 `TaskQueue` 实例
|
|
27515
|
+
*/
|
|
27516
|
+
execute() {
|
|
27517
|
+
for (const task of this.tasks) {
|
|
27518
|
+
task();
|
|
27519
|
+
}
|
|
27520
|
+
this.destroy();
|
|
27521
|
+
}
|
|
27522
|
+
/**
|
|
27523
|
+
* 它接受一个函数作为参数,并返回一个在函数被调用时解析的 Promise
|
|
27524
|
+
* @param {Function} fn - 功能:要执行的功能。
|
|
27525
|
+
* @returns 将解析为传入函数的结果的承诺。
|
|
27526
|
+
*/
|
|
27527
|
+
task(fn) {
|
|
27528
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27529
|
+
return new Promise((resolve) => {
|
|
27530
|
+
this.tasks.push(() => {
|
|
27531
|
+
resolve(fn());
|
|
27532
|
+
});
|
|
27533
|
+
});
|
|
27534
|
+
});
|
|
27535
|
+
}
|
|
27536
|
+
/**
|
|
27537
|
+
* 它从任务数组中删除所有任务
|
|
27538
|
+
*/
|
|
27539
|
+
destroy() {
|
|
27540
|
+
this.tasks = [];
|
|
27541
|
+
}
|
|
27542
|
+
}
|
|
27543
|
+
|
|
27529
27544
|
/**
|
|
27530
27545
|
* RTC 业务客户端
|
|
27531
27546
|
* @public
|
|
@@ -28084,7 +28099,7 @@ class RCRTCClient extends RCMediaStreamCapture {
|
|
|
28084
28099
|
}
|
|
28085
28100
|
reportSDKInfo() {
|
|
28086
28101
|
this._context.reportSDKInfo({
|
|
28087
|
-
'plugin-rtc': "5.6.
|
|
28102
|
+
'plugin-rtc': "5.6.4-alpha.1",
|
|
28088
28103
|
});
|
|
28089
28104
|
}
|
|
28090
28105
|
}
|
|
@@ -29077,7 +29092,7 @@ const installer = {
|
|
|
29077
29092
|
console.error('Please use the https protocol or use `http://localhost` to open the page!');
|
|
29078
29093
|
return false;
|
|
29079
29094
|
}
|
|
29080
|
-
VersionManage.add('plugin-rtc', "5.6.
|
|
29095
|
+
VersionManage.add('plugin-rtc', "5.6.4-alpha.1");
|
|
29081
29096
|
if (!VersionManage.validEngine("^5.6.0")) {
|
|
29082
29097
|
console.error(`The current engine version '${VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"^5.6.0"}'.`);
|
|
29083
29098
|
return false;
|
|
@@ -29091,8 +29106,8 @@ const installer = {
|
|
|
29091
29106
|
RTCLogger.setLogger(originLogger);
|
|
29092
29107
|
logger.setLogger(originLogger);
|
|
29093
29108
|
originLogger.warn(RCLoggerTag.L_INDEX_INSTALL_RTC_PLUGIN_O, JSON.stringify({
|
|
29094
|
-
'RCRTC Version': "5.6.
|
|
29095
|
-
Commit: "
|
|
29109
|
+
'RCRTC Version': "5.6.4-alpha.1",
|
|
29110
|
+
Commit: "568df307dd985346dd4af574ecc9b4e5577ecd59",
|
|
29096
29111
|
'browserInfo.browser': browserInfo.browser,
|
|
29097
29112
|
'browserInfo.supportsUnifiedPlan': browserInfo.supportsUnifiedPlan,
|
|
29098
29113
|
'browserInfo.version': browserInfo.version,
|