@rongcloud/plugin-rtc 5.6.5-beem → 5.6.6-beem-alpha.2
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 +26 -3
- package/dist/index.esm.js +74 -37
- package/dist/index.js +74 -37
- package/dist/index.umd.js +74 -37
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* RCRTC - v5.6.
|
|
3
|
-
* CommitId -
|
|
4
|
-
*
|
|
2
|
+
* RCRTC - v5.6.6-beem-alpha.2
|
|
3
|
+
* CommitId - a1dff2135dffdf1e99f50dccb01d304fd4c661cd
|
|
4
|
+
* Thu Dec 15 2022 16:13:38 GMT+0800 (China Standard Time)
|
|
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';
|
|
@@ -711,6 +711,7 @@ interface IExchangeReqBody {
|
|
|
711
711
|
* server 根据网络动态切换大小流开关,默认为 `false`
|
|
712
712
|
*/
|
|
713
713
|
switchstream: boolean;
|
|
714
|
+
capabilityVersion?: number;
|
|
714
715
|
}
|
|
715
716
|
interface ILiveUrls {
|
|
716
717
|
/**
|
|
@@ -787,6 +788,17 @@ interface IExchangeResponse extends IRTCResponse {
|
|
|
787
788
|
userId: string;
|
|
788
789
|
simulcast?: RCStreamType;
|
|
789
790
|
}[];
|
|
791
|
+
/**
|
|
792
|
+
* 订阅失败的资源列表
|
|
793
|
+
*/
|
|
794
|
+
subscribeErrorList?: {
|
|
795
|
+
mediaType: RCMediaType.AUDIO_ONLY | RCMediaType.VIDEO_ONLY;
|
|
796
|
+
msid: string;
|
|
797
|
+
userId: string;
|
|
798
|
+
msg: string;
|
|
799
|
+
code: number;
|
|
800
|
+
IsRetry: boolean;
|
|
801
|
+
}[];
|
|
790
802
|
}
|
|
791
803
|
interface IBroadcastSubReqBody {
|
|
792
804
|
/**
|
|
@@ -846,6 +858,17 @@ interface IBroadcastSubRespBody extends IRTCResponse {
|
|
|
846
858
|
type: 'answer';
|
|
847
859
|
sdp: string;
|
|
848
860
|
};
|
|
861
|
+
/**
|
|
862
|
+
* 订阅失败的资源列表
|
|
863
|
+
*/
|
|
864
|
+
subscribeErrorList?: {
|
|
865
|
+
mediaType: RCMediaType.AUDIO_ONLY | RCMediaType.VIDEO_ONLY;
|
|
866
|
+
msid: string;
|
|
867
|
+
userId: string;
|
|
868
|
+
msg: string;
|
|
869
|
+
code: number;
|
|
870
|
+
IsRetry: boolean;
|
|
871
|
+
}[];
|
|
849
872
|
}
|
|
850
873
|
/**
|
|
851
874
|
* 获取 CDN 资源拉流地址请求 headers
|
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* RCRTC - v5.6.
|
|
3
|
-
* CommitId -
|
|
4
|
-
*
|
|
2
|
+
* RCRTC - v5.6.6-beem-alpha.2
|
|
3
|
+
* CommitId - a1dff2135dffdf1e99f50dccb01d304fd4c661cd
|
|
4
|
+
* Thu Dec 15 2022 16:13:38 GMT+0800 (China Standard Time)
|
|
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';
|
|
@@ -6930,7 +6930,7 @@ class RCTrack extends EventEmitter {
|
|
|
6930
6930
|
}));
|
|
6931
6931
|
};
|
|
6932
6932
|
this._element.oncanplay = (evt) => __awaiter(this, void 0, void 0, function* () {
|
|
6933
|
-
var _p, _q, _r, _s, _t, _u, _v, _w;
|
|
6933
|
+
var _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
6934
6934
|
// 可以播放
|
|
6935
6935
|
(_p = this._logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_TRACK_CANPLAY_O, JSON.stringify({
|
|
6936
6936
|
status: RCLoggerStatus.INFO,
|
|
@@ -6952,15 +6952,15 @@ class RCTrack extends EventEmitter {
|
|
|
6952
6952
|
status: RCLoggerStatus.FAILED,
|
|
6953
6953
|
kind: (_u = this._kind) !== null && _u !== void 0 ? _u : '',
|
|
6954
6954
|
code: RCRTCCode.NO_PERMISSION_TO_USE_REQUESTED_DEVICE,
|
|
6955
|
-
msg: `setSinkId failed, error msg: ${error.message}`,
|
|
6955
|
+
msg: `setSinkId failed, error msg: ${error.message} -> id: ${(_v = evt.target) === null || _v === void 0 ? void 0 : _v.id}, trackId: ${this._id}`,
|
|
6956
6956
|
}));
|
|
6957
6957
|
return;
|
|
6958
6958
|
}
|
|
6959
|
-
(
|
|
6959
|
+
(_w = this._logger) === null || _w === void 0 ? void 0 : _w.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6960
6960
|
status: RCLoggerStatus.FAILED,
|
|
6961
6961
|
code: RCRTCCode.TRACK_PLAY_ERROR,
|
|
6962
|
-
kind: (
|
|
6963
|
-
msg: `play error, error msg: ${error.message}`,
|
|
6962
|
+
kind: (_x = this._kind) !== null && _x !== void 0 ? _x : '',
|
|
6963
|
+
msg: `play error, error msg: ${error.message} -> id: ${(_y = evt.target) === null || _y === void 0 ? void 0 : _y.id}, trackId: ${this._id}`,
|
|
6964
6964
|
}));
|
|
6965
6965
|
}
|
|
6966
6966
|
});
|
|
@@ -14812,7 +14812,7 @@ const getCommonHeader$1 = () => ({
|
|
|
14812
14812
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
14813
14813
|
'Cache-Control': 'no-cache',
|
|
14814
14814
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
14815
|
-
ClientVersion: "5.6.
|
|
14815
|
+
ClientVersion: "5.6.6-beem-alpha.2",
|
|
14816
14816
|
'Client-Session-Id': getUUID(),
|
|
14817
14817
|
'Request-Id': Date.now().toString(),
|
|
14818
14818
|
});
|
|
@@ -15397,7 +15397,7 @@ const getCommonHeader = () => ({
|
|
|
15397
15397
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
15398
15398
|
'Cache-Control': 'no-cache',
|
|
15399
15399
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
15400
|
-
ClientVersion: "5.6.
|
|
15400
|
+
ClientVersion: "5.6.6-beem-alpha.2",
|
|
15401
15401
|
'Client-Session-Id': getUUID(),
|
|
15402
15402
|
'Request-Id': Date.now().toString(),
|
|
15403
15403
|
});
|
|
@@ -18689,7 +18689,7 @@ class PolarisReporter {
|
|
|
18689
18689
|
* 加入房间
|
|
18690
18690
|
*/
|
|
18691
18691
|
sendR1() {
|
|
18692
|
-
const rtcVersion = "5.6.
|
|
18692
|
+
const rtcVersion = "5.6.6-beem-alpha.2";
|
|
18693
18693
|
const imVersion = this._context.getCoreVersion();
|
|
18694
18694
|
const platform = 'web';
|
|
18695
18695
|
const pcName = navigator.platform;
|
|
@@ -18839,7 +18839,7 @@ class PolarisHttpReporter {
|
|
|
18839
18839
|
_formatR1Data() {
|
|
18840
18840
|
return {
|
|
18841
18841
|
joinTime: this._context.userJoinTime || 0,
|
|
18842
|
-
rtcVersion: "5.6.
|
|
18842
|
+
rtcVersion: "5.6.6-beem-alpha.2",
|
|
18843
18843
|
imVersion: this._context.getCoreVersion(),
|
|
18844
18844
|
platform: 'web',
|
|
18845
18845
|
device: navigator.platform,
|
|
@@ -20140,12 +20140,13 @@ class ExchangeCommand extends BaseCommand {
|
|
|
20140
20140
|
}
|
|
20141
20141
|
|
|
20142
20142
|
class UpdateSubscribeListCommand extends BaseCommand {
|
|
20143
|
-
constructor(tracks, subhook, forceReq, traceId) {
|
|
20143
|
+
constructor(tracks, subhook, forceReq, traceId, reTry = 0) {
|
|
20144
20144
|
super();
|
|
20145
20145
|
this.tracks = tracks;
|
|
20146
20146
|
this.subhook = subhook;
|
|
20147
20147
|
this.forceReq = forceReq;
|
|
20148
20148
|
this.traceId = traceId;
|
|
20149
|
+
this.reTry = reTry;
|
|
20149
20150
|
}
|
|
20150
20151
|
get kind() {
|
|
20151
20152
|
return RCCommandKind.UPDATE_SUBSCRIBE_LIST;
|
|
@@ -20153,7 +20154,7 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20153
20154
|
execute(store, invoker) {
|
|
20154
20155
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
20155
20156
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20156
|
-
const { tracks, forceReq } = this;
|
|
20157
|
+
const { tracks, forceReq, reTry } = this;
|
|
20157
20158
|
const { roomId } = store;
|
|
20158
20159
|
(_b = (_a = store.context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_UPDATE_SUBSCRIBELIST_COMMAND_T, `roomId: ${roomId}, forceReq: ${forceReq}, trackIds: ${tracks.map(getTrackIdFromAttr)}`, this.traceId);
|
|
20159
20160
|
if (!validate('tracks', tracks, () => isArray(tracks) && tracks.every((res) => res instanceof RCRemoteTrack || res.track instanceof RCRemoteTrack), true)) {
|
|
@@ -20229,6 +20230,7 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20229
20230
|
* 直播房间需携带 pushOtherRooms 信息
|
|
20230
20231
|
*/
|
|
20231
20232
|
pushOtherRooms && (reqBody.pushOtherRooms = pushOtherRooms);
|
|
20233
|
+
// TODO: 订阅失败重试
|
|
20232
20234
|
const result = yield new ExchangeCommand(headers, reqBody, this.traceId, true).execute(store, invoker);
|
|
20233
20235
|
attrs.map((item) => item.track.getTrackId());
|
|
20234
20236
|
if (result.code !== RCRTCCode.SUCCESS) {
|
|
@@ -20239,7 +20241,7 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20239
20241
|
}), this.traceId);
|
|
20240
20242
|
return { code: result.code };
|
|
20241
20243
|
}
|
|
20242
|
-
const { sdp: answer, resultCode, message, subscribedList, } = result.data;
|
|
20244
|
+
const { sdp: answer, resultCode, message, subscribedList, subscribeErrorList, } = result.data;
|
|
20243
20245
|
if (resultCode !== RCRTCCode.SUCCESS) {
|
|
20244
20246
|
reportQualitySubscribeAndUnsubscribeData(attrs, resultCode);
|
|
20245
20247
|
(_m = (_l = store.context) === null || _l === void 0 ? void 0 : _l.logger) === null || _m === void 0 ? void 0 : _m.error(RCLoggerTag.L_UPDATE_SUBSCRIBELIST_COMMAND_R, JSON.stringify({
|
|
@@ -20248,6 +20250,12 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20248
20250
|
}), this.traceId);
|
|
20249
20251
|
return { code: resultCode };
|
|
20250
20252
|
}
|
|
20253
|
+
if (subscribeErrorList
|
|
20254
|
+
&& subscribeErrorList.length > 0
|
|
20255
|
+
&& reTry > 0
|
|
20256
|
+
&& subscribeErrorList.some((item) => item.IsRetry)) {
|
|
20257
|
+
return new UpdateSubscribeListCommand(this.tracks, this.subhook, true, this.traceId, reTry - 1).execute(store, invoker);
|
|
20258
|
+
}
|
|
20251
20259
|
const resCode = yield pc.setRemoteAnswer(answer.sdp);
|
|
20252
20260
|
if (resCode !== RCRTCCode.SUCCESS) {
|
|
20253
20261
|
// 连通率相关埋点-订阅日志上报
|
|
@@ -20264,9 +20272,13 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20264
20272
|
},
|
|
20265
20273
|
});
|
|
20266
20274
|
// 获取真正订阅成功的资源
|
|
20267
|
-
const subSuccessTrackIds = subscribedList
|
|
20268
|
-
const subSuccessList = attrs.filter((item) => subSuccessTrackIds
|
|
20269
|
-
const failedList = attrs.filter((item) => !
|
|
20275
|
+
// const subSuccessTrackIds = subscribedList?.map((item) => `${item.msid}_${item.mediaType}`);
|
|
20276
|
+
// const subSuccessList = attrs.filter((item) => subSuccessTrackIds?.includes(item.track.getTrackId()));
|
|
20277
|
+
// const failedList = attrs.filter((item) => !subSuccessTrackIds?.includes(item.track.getTrackId()));
|
|
20278
|
+
const subFailedTrackIds = subscribeErrorList === null || subscribeErrorList === void 0 ? void 0 : subscribeErrorList.map((item) => `${item.msid}_${item.mediaType}`);
|
|
20279
|
+
const subSuccessList = attrs.filter((item) => !(subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId())));
|
|
20280
|
+
const failedList = attrs.filter((item) => subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
20281
|
+
const subSuccessTrackIds = subSuccessList === null || subSuccessList === void 0 ? void 0 : subSuccessList.map((item) => item.track.getTrackId());
|
|
20270
20282
|
(_p = (_o = store.context) === null || _o === void 0 ? void 0 : _o.logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_ABSTRACT_ROOM_SUBSCRIBE_R, JSON.stringify({
|
|
20271
20283
|
status: RCLoggerStatus.SUCCESSED,
|
|
20272
20284
|
subSuccessTrackIds,
|
|
@@ -20317,7 +20329,7 @@ class UnsubscribeCommand extends BaseCommand {
|
|
|
20317
20329
|
// 北极星上报
|
|
20318
20330
|
store.polarisReport.sendR2(R2Action.SUBSCRIBE, R2Status.END, tracks.map((item) => item.getTrackId()));
|
|
20319
20331
|
recordUnsubscribeCommand(true);
|
|
20320
|
-
return new UpdateSubscribeListCommand(crtSubList, this.subhook, false, this.traceId).execute(store, invoker);
|
|
20332
|
+
return new UpdateSubscribeListCommand(crtSubList, this.subhook, false, this.traceId, 2).execute(store, invoker);
|
|
20321
20333
|
});
|
|
20322
20334
|
}
|
|
20323
20335
|
}
|
|
@@ -20378,6 +20390,8 @@ function createExchangeParams(subscribeList, iceRestart, pc, store) {
|
|
|
20378
20390
|
})),
|
|
20379
20391
|
switchstream: false,
|
|
20380
20392
|
// switchstream: !!this._initOptions.autoSwitchStream
|
|
20393
|
+
// 标识客户端处理能力,当前值 1,表示处理订阅错误列表能力。
|
|
20394
|
+
capabilityVersion: 1,
|
|
20381
20395
|
};
|
|
20382
20396
|
return reqBody;
|
|
20383
20397
|
});
|
|
@@ -20844,7 +20858,7 @@ class ParseRemoteResCommand extends BaseCommand {
|
|
|
20844
20858
|
// 重新订阅二次发布资源
|
|
20845
20859
|
if (subedTracks.length) {
|
|
20846
20860
|
const trackIds = subedTracks.map((item) => item.getTrackId());
|
|
20847
|
-
const { code } = yield new UpdateSubscribeListCommand(subedTracks, this.subhook, true, this.traceId).execute(store, invoker);
|
|
20861
|
+
const { code } = yield new UpdateSubscribeListCommand(subedTracks, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
20848
20862
|
if (code !== RCRTCCode.SUCCESS) {
|
|
20849
20863
|
(_b = (_a = store.context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.error(RCLoggerTag.L_RESUB_REPUB_RES_R, JSON.stringify({
|
|
20850
20864
|
status: RCLoggerStatus.FAILED,
|
|
@@ -20964,7 +20978,7 @@ class SubscribeCommand extends BaseCommand {
|
|
|
20964
20978
|
// 北极星上报
|
|
20965
20979
|
store.polarisReport.sendR2(R2Action.SUBSCRIBE, R2Status.BEGIN, R2TrackIds);
|
|
20966
20980
|
recordSubscribeCommand(true);
|
|
20967
|
-
return new UpdateSubscribeListCommand(crtSubList, this.subhook, true, this.traceId).execute(store, invoker);
|
|
20981
|
+
return new UpdateSubscribeListCommand(crtSubList, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
20968
20982
|
});
|
|
20969
20983
|
}
|
|
20970
20984
|
}
|
|
@@ -21806,7 +21820,7 @@ class AsyncUpdateSubscribeListCommand extends AsyncCommand {
|
|
|
21806
21820
|
if (this.state === RCLinkedListPoint.NORMAL) {
|
|
21807
21821
|
// 获取原订阅列表
|
|
21808
21822
|
const originTracks = store.getSubscribedList().slice();
|
|
21809
|
-
const { code: updateSuscribeCode, failedList } = yield new UpdateSubscribeListCommand(tracks, this.subhook, true, this.traceId).execute(store, invoker);
|
|
21823
|
+
const { code: updateSuscribeCode, failedList } = yield new UpdateSubscribeListCommand(tracks, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
21810
21824
|
// 获取新的订阅列表
|
|
21811
21825
|
const subscribedTracks = store.getSubscribedList().slice();
|
|
21812
21826
|
// 计算订阅列表 Diff
|
|
@@ -22976,7 +22990,7 @@ class RCAbstractRoom extends EventEmitter {
|
|
|
22976
22990
|
updateSubList(tracks) {
|
|
22977
22991
|
var _a, _b;
|
|
22978
22992
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22979
|
-
return this._invoker.push(new UpdateSubscribeListCommand(tracks, this._subhook.bind(this), true, (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId()));
|
|
22993
|
+
return this._invoker.push(new UpdateSubscribeListCommand(tracks, this._subhook.bind(this), true, (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId(), 2));
|
|
22980
22994
|
});
|
|
22981
22995
|
}
|
|
22982
22996
|
/**
|
|
@@ -26108,7 +26122,7 @@ class RCAudienceLivingRoom {
|
|
|
26108
26122
|
var _a;
|
|
26109
26123
|
const { reqBody } = yield this._createSubscribeParams(this._subscribedList, {}, true);
|
|
26110
26124
|
// 发送 /exchange 请求
|
|
26111
|
-
const resp = yield this._exchangeHandle(reqBody);
|
|
26125
|
+
const resp = yield this._exchangeHandle(reqBody, 2);
|
|
26112
26126
|
if (resp.code !== RCRTCCode.SUCCESS) {
|
|
26113
26127
|
return { code: resp.code };
|
|
26114
26128
|
}
|
|
@@ -26283,8 +26297,20 @@ class RCAudienceLivingRoom {
|
|
|
26283
26297
|
// 直播观众端 RoomId 与 UserId 保持一致
|
|
26284
26298
|
return Object.assign({ 'App-Key': this._context.getAppkey(), RoomId: userId, Token: this._joinResData.token, RoomType: RTCMode.LIVE, UserId: userId, 'Session-Id': this._sessionId, 'Client-Session-Id': this._clientSessionId }, peerConnectionId);
|
|
26285
26299
|
}
|
|
26286
|
-
_exchangeHandle(body) {
|
|
26287
|
-
|
|
26300
|
+
_exchangeHandle(body, reTry = 0) {
|
|
26301
|
+
var _a;
|
|
26302
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26303
|
+
Object.assign(Object.assign({}, this._getReqHeaders()), { capabilityVersion: 1 });
|
|
26304
|
+
const res = yield this._service.broadcastSubscribe(this._getReqHeaders(), body);
|
|
26305
|
+
const subscribeErrorList = (_a = res.data) === null || _a === void 0 ? void 0 : _a.subscribeErrorList;
|
|
26306
|
+
if (subscribeErrorList
|
|
26307
|
+
&& subscribeErrorList.length > 0
|
|
26308
|
+
&& reTry > 0
|
|
26309
|
+
&& subscribeErrorList.some((item) => item.IsRetry)) {
|
|
26310
|
+
return this._exchangeHandle(body, reTry - 1);
|
|
26311
|
+
}
|
|
26312
|
+
return res;
|
|
26313
|
+
});
|
|
26288
26314
|
}
|
|
26289
26315
|
_updateSubListHandle(tracks, forceReq = false, traceId) {
|
|
26290
26316
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
@@ -26342,7 +26368,7 @@ class RCAudienceLivingRoom {
|
|
|
26342
26368
|
recordQualityUnsubscribeData(this._roomId, this._clientSessionId, this._sessionId);
|
|
26343
26369
|
// MediaServer 交互
|
|
26344
26370
|
const { reqBody } = yield this._createSubscribeParams(attrs, {}, false);
|
|
26345
|
-
const result = yield this._exchangeHandle(reqBody);
|
|
26371
|
+
const result = yield this._exchangeHandle(reqBody, 2);
|
|
26346
26372
|
if (crtSubList.length) {
|
|
26347
26373
|
// 取消订阅时,清除 parseRTCReport 模块中存储的数据
|
|
26348
26374
|
const resourceIds = [];
|
|
@@ -26359,7 +26385,7 @@ class RCAudienceLivingRoom {
|
|
|
26359
26385
|
}), traceId);
|
|
26360
26386
|
return { code: result.code };
|
|
26361
26387
|
}
|
|
26362
|
-
const { sdp: answer, resultCode, message, subscribedList, } = result.data;
|
|
26388
|
+
const { sdp: answer, resultCode, message, subscribedList, subscribeErrorList, } = result.data;
|
|
26363
26389
|
if (resultCode !== RCRTCCode.SUCCESS) {
|
|
26364
26390
|
reportQualitySubscribeAndUnsubscribeData(attrs, resultCode);
|
|
26365
26391
|
(_h = (_g = this._context) === null || _g === void 0 ? void 0 : _g.logger) === null || _h === void 0 ? void 0 : _h.error(RCLoggerTag.L_AUDIENCE_LIVING_ROOM_UPDATE_SUBSCRIBELIST_R, JSON.stringify({
|
|
@@ -26391,17 +26417,28 @@ class RCAudienceLivingRoom {
|
|
|
26391
26417
|
}
|
|
26392
26418
|
reportQualitySubscribeAndUnsubscribeData(attrs, resCode);
|
|
26393
26419
|
// 获取真正订阅成功的资源
|
|
26394
|
-
const subSuccessTrackIds = subscribedList
|
|
26420
|
+
// const subSuccessTrackIds = subscribedList?.map((item) => `${item.msid}_${item.mediaType}`);
|
|
26421
|
+
// const subSuccessList = attrs.filter((item) => {
|
|
26422
|
+
// if (item.track.isMCUTrack()) {
|
|
26423
|
+
// const serverTrackInfo = this._roomRes[item.track.getTrackId()];
|
|
26424
|
+
// const sdpResourceId = `${serverTrackInfo.msid}_${serverTrackInfo.mediaType}`;
|
|
26425
|
+
// return subSuccessTrackIds.includes(sdpResourceId);
|
|
26426
|
+
// }
|
|
26427
|
+
// return subSuccessTrackIds?.includes(item.track.getTrackId());
|
|
26428
|
+
// });
|
|
26429
|
+
// const afterReplaceTrackIds = subSuccessList?.map((item) => `${item.track.getTrackId()}`);
|
|
26430
|
+
// const failedList = attrs.filter((item) => !afterReplaceTrackIds?.includes(item.track.getTrackId()));
|
|
26431
|
+
const subFailedTrackIds = (subscribeErrorList === null || subscribeErrorList === void 0 ? void 0 : subscribeErrorList.map((item) => `${item.msid}_${item.mediaType}`)) || [];
|
|
26395
26432
|
const subSuccessList = attrs.filter((item) => {
|
|
26396
26433
|
if (item.track.isMCUTrack()) {
|
|
26397
26434
|
const serverTrackInfo = this._roomRes[item.track.getTrackId()];
|
|
26398
26435
|
const sdpResourceId = `${serverTrackInfo.msid}_${serverTrackInfo.mediaType}`;
|
|
26399
|
-
return
|
|
26436
|
+
return !subFailedTrackIds.includes(sdpResourceId);
|
|
26400
26437
|
}
|
|
26401
|
-
return
|
|
26438
|
+
return !(subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
26402
26439
|
});
|
|
26403
|
-
const
|
|
26404
|
-
const
|
|
26440
|
+
const failedList = attrs.filter((item) => subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
26441
|
+
const subSuccessTrackIds = subSuccessList === null || subSuccessList === void 0 ? void 0 : subSuccessList.map((item) => item.track.getTrackId());
|
|
26405
26442
|
// 更新 remoteTrack.isSubscribed
|
|
26406
26443
|
for (const trackId in this._remoteTracks) {
|
|
26407
26444
|
const subed = subSuccessList.some((item) => item.track.getTrackId() === trackId);
|
|
@@ -28040,7 +28077,7 @@ class RCRTCClient extends RCMediaStreamCapture {
|
|
|
28040
28077
|
}
|
|
28041
28078
|
reportSDKInfo() {
|
|
28042
28079
|
this._context.reportSDKInfo({
|
|
28043
|
-
'plugin-rtc': "5.6.
|
|
28080
|
+
'plugin-rtc': "5.6.6-beem-alpha.2",
|
|
28044
28081
|
});
|
|
28045
28082
|
}
|
|
28046
28083
|
}
|
|
@@ -29033,7 +29070,7 @@ const installer = {
|
|
|
29033
29070
|
console.error('Please use the https protocol or use `http://localhost` to open the page!');
|
|
29034
29071
|
return false;
|
|
29035
29072
|
}
|
|
29036
|
-
VersionManage.add('plugin-rtc', "5.6.
|
|
29073
|
+
VersionManage.add('plugin-rtc', "5.6.6-beem-alpha.2");
|
|
29037
29074
|
if (!VersionManage.validEngine("^5.6.0")) {
|
|
29038
29075
|
console.error(`The current engine version '${VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"^5.6.0"}'.`);
|
|
29039
29076
|
return false;
|
|
@@ -29047,8 +29084,8 @@ const installer = {
|
|
|
29047
29084
|
RTCLogger.setLogger(originLogger);
|
|
29048
29085
|
logger.setLogger(originLogger);
|
|
29049
29086
|
originLogger.warn(RCLoggerTag.L_INDEX_INSTALL_RTC_PLUGIN_O, JSON.stringify({
|
|
29050
|
-
'RCRTC Version': "5.6.
|
|
29051
|
-
Commit: "
|
|
29087
|
+
'RCRTC Version': "5.6.6-beem-alpha.2",
|
|
29088
|
+
Commit: "a1dff2135dffdf1e99f50dccb01d304fd4c661cd",
|
|
29052
29089
|
'browserInfo.browser': browserInfo.browser,
|
|
29053
29090
|
'browserInfo.supportsUnifiedPlan': browserInfo.supportsUnifiedPlan,
|
|
29054
29091
|
'browserInfo.version': browserInfo.version,
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* RCRTC - v5.6.
|
|
3
|
-
* CommitId -
|
|
4
|
-
*
|
|
2
|
+
* RCRTC - v5.6.6-beem-alpha.2
|
|
3
|
+
* CommitId - a1dff2135dffdf1e99f50dccb01d304fd4c661cd
|
|
4
|
+
* Thu Dec 15 2022 16:13:38 GMT+0800 (China Standard Time)
|
|
5
5
|
* ©2020 RongCloud, Inc. All rights reserved.
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
@@ -6934,7 +6934,7 @@ class RCTrack extends engine.EventEmitter {
|
|
|
6934
6934
|
}));
|
|
6935
6935
|
};
|
|
6936
6936
|
this._element.oncanplay = (evt) => __awaiter(this, void 0, void 0, function* () {
|
|
6937
|
-
var _p, _q, _r, _s, _t, _u, _v, _w;
|
|
6937
|
+
var _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
6938
6938
|
// 可以播放
|
|
6939
6939
|
(_p = this._logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_TRACK_CANPLAY_O, JSON.stringify({
|
|
6940
6940
|
status: RCLoggerStatus.INFO,
|
|
@@ -6956,15 +6956,15 @@ class RCTrack extends engine.EventEmitter {
|
|
|
6956
6956
|
status: RCLoggerStatus.FAILED,
|
|
6957
6957
|
kind: (_u = this._kind) !== null && _u !== void 0 ? _u : '',
|
|
6958
6958
|
code: exports.RCRTCCode.NO_PERMISSION_TO_USE_REQUESTED_DEVICE,
|
|
6959
|
-
msg: `setSinkId failed, error msg: ${error.message}`,
|
|
6959
|
+
msg: `setSinkId failed, error msg: ${error.message} -> id: ${(_v = evt.target) === null || _v === void 0 ? void 0 : _v.id}, trackId: ${this._id}`,
|
|
6960
6960
|
}));
|
|
6961
6961
|
return;
|
|
6962
6962
|
}
|
|
6963
|
-
(
|
|
6963
|
+
(_w = this._logger) === null || _w === void 0 ? void 0 : _w.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6964
6964
|
status: RCLoggerStatus.FAILED,
|
|
6965
6965
|
code: exports.RCRTCCode.TRACK_PLAY_ERROR,
|
|
6966
|
-
kind: (
|
|
6967
|
-
msg: `play error, error msg: ${error.message}`,
|
|
6966
|
+
kind: (_x = this._kind) !== null && _x !== void 0 ? _x : '',
|
|
6967
|
+
msg: `play error, error msg: ${error.message} -> id: ${(_y = evt.target) === null || _y === void 0 ? void 0 : _y.id}, trackId: ${this._id}`,
|
|
6968
6968
|
}));
|
|
6969
6969
|
}
|
|
6970
6970
|
});
|
|
@@ -14816,7 +14816,7 @@ const getCommonHeader$1 = () => ({
|
|
|
14816
14816
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
14817
14817
|
'Cache-Control': 'no-cache',
|
|
14818
14818
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
14819
|
-
ClientVersion: "5.6.
|
|
14819
|
+
ClientVersion: "5.6.6-beem-alpha.2",
|
|
14820
14820
|
'Client-Session-Id': getUUID(),
|
|
14821
14821
|
'Request-Id': Date.now().toString(),
|
|
14822
14822
|
});
|
|
@@ -15401,7 +15401,7 @@ const getCommonHeader = () => ({
|
|
|
15401
15401
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
15402
15402
|
'Cache-Control': 'no-cache',
|
|
15403
15403
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
15404
|
-
ClientVersion: "5.6.
|
|
15404
|
+
ClientVersion: "5.6.6-beem-alpha.2",
|
|
15405
15405
|
'Client-Session-Id': getUUID(),
|
|
15406
15406
|
'Request-Id': Date.now().toString(),
|
|
15407
15407
|
});
|
|
@@ -18693,7 +18693,7 @@ class PolarisReporter {
|
|
|
18693
18693
|
* 加入房间
|
|
18694
18694
|
*/
|
|
18695
18695
|
sendR1() {
|
|
18696
|
-
const rtcVersion = "5.6.
|
|
18696
|
+
const rtcVersion = "5.6.6-beem-alpha.2";
|
|
18697
18697
|
const imVersion = this._context.getCoreVersion();
|
|
18698
18698
|
const platform = 'web';
|
|
18699
18699
|
const pcName = navigator.platform;
|
|
@@ -18843,7 +18843,7 @@ class PolarisHttpReporter {
|
|
|
18843
18843
|
_formatR1Data() {
|
|
18844
18844
|
return {
|
|
18845
18845
|
joinTime: this._context.userJoinTime || 0,
|
|
18846
|
-
rtcVersion: "5.6.
|
|
18846
|
+
rtcVersion: "5.6.6-beem-alpha.2",
|
|
18847
18847
|
imVersion: this._context.getCoreVersion(),
|
|
18848
18848
|
platform: 'web',
|
|
18849
18849
|
device: navigator.platform,
|
|
@@ -20144,12 +20144,13 @@ class ExchangeCommand extends BaseCommand {
|
|
|
20144
20144
|
}
|
|
20145
20145
|
|
|
20146
20146
|
class UpdateSubscribeListCommand extends BaseCommand {
|
|
20147
|
-
constructor(tracks, subhook, forceReq, traceId) {
|
|
20147
|
+
constructor(tracks, subhook, forceReq, traceId, reTry = 0) {
|
|
20148
20148
|
super();
|
|
20149
20149
|
this.tracks = tracks;
|
|
20150
20150
|
this.subhook = subhook;
|
|
20151
20151
|
this.forceReq = forceReq;
|
|
20152
20152
|
this.traceId = traceId;
|
|
20153
|
+
this.reTry = reTry;
|
|
20153
20154
|
}
|
|
20154
20155
|
get kind() {
|
|
20155
20156
|
return RCCommandKind.UPDATE_SUBSCRIBE_LIST;
|
|
@@ -20157,7 +20158,7 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20157
20158
|
execute(store, invoker) {
|
|
20158
20159
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
20159
20160
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20160
|
-
const { tracks, forceReq } = this;
|
|
20161
|
+
const { tracks, forceReq, reTry } = this;
|
|
20161
20162
|
const { roomId } = store;
|
|
20162
20163
|
(_b = (_a = store.context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_UPDATE_SUBSCRIBELIST_COMMAND_T, `roomId: ${roomId}, forceReq: ${forceReq}, trackIds: ${tracks.map(getTrackIdFromAttr)}`, this.traceId);
|
|
20163
20164
|
if (!engine.validate('tracks', tracks, () => engine.isArray(tracks) && tracks.every((res) => res instanceof RCRemoteTrack || res.track instanceof RCRemoteTrack), true)) {
|
|
@@ -20233,6 +20234,7 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20233
20234
|
* 直播房间需携带 pushOtherRooms 信息
|
|
20234
20235
|
*/
|
|
20235
20236
|
pushOtherRooms && (reqBody.pushOtherRooms = pushOtherRooms);
|
|
20237
|
+
// TODO: 订阅失败重试
|
|
20236
20238
|
const result = yield new ExchangeCommand(headers, reqBody, this.traceId, true).execute(store, invoker);
|
|
20237
20239
|
attrs.map((item) => item.track.getTrackId());
|
|
20238
20240
|
if (result.code !== exports.RCRTCCode.SUCCESS) {
|
|
@@ -20243,7 +20245,7 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20243
20245
|
}), this.traceId);
|
|
20244
20246
|
return { code: result.code };
|
|
20245
20247
|
}
|
|
20246
|
-
const { sdp: answer, resultCode, message, subscribedList, } = result.data;
|
|
20248
|
+
const { sdp: answer, resultCode, message, subscribedList, subscribeErrorList, } = result.data;
|
|
20247
20249
|
if (resultCode !== exports.RCRTCCode.SUCCESS) {
|
|
20248
20250
|
reportQualitySubscribeAndUnsubscribeData(attrs, resultCode);
|
|
20249
20251
|
(_m = (_l = store.context) === null || _l === void 0 ? void 0 : _l.logger) === null || _m === void 0 ? void 0 : _m.error(RCLoggerTag.L_UPDATE_SUBSCRIBELIST_COMMAND_R, JSON.stringify({
|
|
@@ -20252,6 +20254,12 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20252
20254
|
}), this.traceId);
|
|
20253
20255
|
return { code: resultCode };
|
|
20254
20256
|
}
|
|
20257
|
+
if (subscribeErrorList
|
|
20258
|
+
&& subscribeErrorList.length > 0
|
|
20259
|
+
&& reTry > 0
|
|
20260
|
+
&& subscribeErrorList.some((item) => item.IsRetry)) {
|
|
20261
|
+
return new UpdateSubscribeListCommand(this.tracks, this.subhook, true, this.traceId, reTry - 1).execute(store, invoker);
|
|
20262
|
+
}
|
|
20255
20263
|
const resCode = yield pc.setRemoteAnswer(answer.sdp);
|
|
20256
20264
|
if (resCode !== exports.RCRTCCode.SUCCESS) {
|
|
20257
20265
|
// 连通率相关埋点-订阅日志上报
|
|
@@ -20268,9 +20276,13 @@ class UpdateSubscribeListCommand extends BaseCommand {
|
|
|
20268
20276
|
},
|
|
20269
20277
|
});
|
|
20270
20278
|
// 获取真正订阅成功的资源
|
|
20271
|
-
const subSuccessTrackIds = subscribedList
|
|
20272
|
-
const subSuccessList = attrs.filter((item) => subSuccessTrackIds
|
|
20273
|
-
const failedList = attrs.filter((item) => !
|
|
20279
|
+
// const subSuccessTrackIds = subscribedList?.map((item) => `${item.msid}_${item.mediaType}`);
|
|
20280
|
+
// const subSuccessList = attrs.filter((item) => subSuccessTrackIds?.includes(item.track.getTrackId()));
|
|
20281
|
+
// const failedList = attrs.filter((item) => !subSuccessTrackIds?.includes(item.track.getTrackId()));
|
|
20282
|
+
const subFailedTrackIds = subscribeErrorList === null || subscribeErrorList === void 0 ? void 0 : subscribeErrorList.map((item) => `${item.msid}_${item.mediaType}`);
|
|
20283
|
+
const subSuccessList = attrs.filter((item) => !(subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId())));
|
|
20284
|
+
const failedList = attrs.filter((item) => subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
20285
|
+
const subSuccessTrackIds = subSuccessList === null || subSuccessList === void 0 ? void 0 : subSuccessList.map((item) => item.track.getTrackId());
|
|
20274
20286
|
(_p = (_o = store.context) === null || _o === void 0 ? void 0 : _o.logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_ABSTRACT_ROOM_SUBSCRIBE_R, JSON.stringify({
|
|
20275
20287
|
status: RCLoggerStatus.SUCCESSED,
|
|
20276
20288
|
subSuccessTrackIds,
|
|
@@ -20321,7 +20333,7 @@ class UnsubscribeCommand extends BaseCommand {
|
|
|
20321
20333
|
// 北极星上报
|
|
20322
20334
|
store.polarisReport.sendR2(R2Action.SUBSCRIBE, R2Status.END, tracks.map((item) => item.getTrackId()));
|
|
20323
20335
|
recordUnsubscribeCommand(true);
|
|
20324
|
-
return new UpdateSubscribeListCommand(crtSubList, this.subhook, false, this.traceId).execute(store, invoker);
|
|
20336
|
+
return new UpdateSubscribeListCommand(crtSubList, this.subhook, false, this.traceId, 2).execute(store, invoker);
|
|
20325
20337
|
});
|
|
20326
20338
|
}
|
|
20327
20339
|
}
|
|
@@ -20382,6 +20394,8 @@ function createExchangeParams(subscribeList, iceRestart, pc, store) {
|
|
|
20382
20394
|
})),
|
|
20383
20395
|
switchstream: false,
|
|
20384
20396
|
// switchstream: !!this._initOptions.autoSwitchStream
|
|
20397
|
+
// 标识客户端处理能力,当前值 1,表示处理订阅错误列表能力。
|
|
20398
|
+
capabilityVersion: 1,
|
|
20385
20399
|
};
|
|
20386
20400
|
return reqBody;
|
|
20387
20401
|
});
|
|
@@ -20848,7 +20862,7 @@ class ParseRemoteResCommand extends BaseCommand {
|
|
|
20848
20862
|
// 重新订阅二次发布资源
|
|
20849
20863
|
if (subedTracks.length) {
|
|
20850
20864
|
const trackIds = subedTracks.map((item) => item.getTrackId());
|
|
20851
|
-
const { code } = yield new UpdateSubscribeListCommand(subedTracks, this.subhook, true, this.traceId).execute(store, invoker);
|
|
20865
|
+
const { code } = yield new UpdateSubscribeListCommand(subedTracks, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
20852
20866
|
if (code !== exports.RCRTCCode.SUCCESS) {
|
|
20853
20867
|
(_b = (_a = store.context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.error(RCLoggerTag.L_RESUB_REPUB_RES_R, JSON.stringify({
|
|
20854
20868
|
status: RCLoggerStatus.FAILED,
|
|
@@ -20968,7 +20982,7 @@ class SubscribeCommand extends BaseCommand {
|
|
|
20968
20982
|
// 北极星上报
|
|
20969
20983
|
store.polarisReport.sendR2(R2Action.SUBSCRIBE, R2Status.BEGIN, R2TrackIds);
|
|
20970
20984
|
recordSubscribeCommand(true);
|
|
20971
|
-
return new UpdateSubscribeListCommand(crtSubList, this.subhook, true, this.traceId).execute(store, invoker);
|
|
20985
|
+
return new UpdateSubscribeListCommand(crtSubList, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
20972
20986
|
});
|
|
20973
20987
|
}
|
|
20974
20988
|
}
|
|
@@ -21810,7 +21824,7 @@ class AsyncUpdateSubscribeListCommand extends AsyncCommand {
|
|
|
21810
21824
|
if (this.state === RCLinkedListPoint.NORMAL) {
|
|
21811
21825
|
// 获取原订阅列表
|
|
21812
21826
|
const originTracks = store.getSubscribedList().slice();
|
|
21813
|
-
const { code: updateSuscribeCode, failedList } = yield new UpdateSubscribeListCommand(tracks, this.subhook, true, this.traceId).execute(store, invoker);
|
|
21827
|
+
const { code: updateSuscribeCode, failedList } = yield new UpdateSubscribeListCommand(tracks, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
21814
21828
|
// 获取新的订阅列表
|
|
21815
21829
|
const subscribedTracks = store.getSubscribedList().slice();
|
|
21816
21830
|
// 计算订阅列表 Diff
|
|
@@ -22980,7 +22994,7 @@ class RCAbstractRoom extends engine.EventEmitter {
|
|
|
22980
22994
|
updateSubList(tracks) {
|
|
22981
22995
|
var _a, _b;
|
|
22982
22996
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22983
|
-
return this._invoker.push(new UpdateSubscribeListCommand(tracks, this._subhook.bind(this), true, (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId()));
|
|
22997
|
+
return this._invoker.push(new UpdateSubscribeListCommand(tracks, this._subhook.bind(this), true, (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId(), 2));
|
|
22984
22998
|
});
|
|
22985
22999
|
}
|
|
22986
23000
|
/**
|
|
@@ -26112,7 +26126,7 @@ class RCAudienceLivingRoom {
|
|
|
26112
26126
|
var _a;
|
|
26113
26127
|
const { reqBody } = yield this._createSubscribeParams(this._subscribedList, {}, true);
|
|
26114
26128
|
// 发送 /exchange 请求
|
|
26115
|
-
const resp = yield this._exchangeHandle(reqBody);
|
|
26129
|
+
const resp = yield this._exchangeHandle(reqBody, 2);
|
|
26116
26130
|
if (resp.code !== exports.RCRTCCode.SUCCESS) {
|
|
26117
26131
|
return { code: resp.code };
|
|
26118
26132
|
}
|
|
@@ -26287,8 +26301,20 @@ class RCAudienceLivingRoom {
|
|
|
26287
26301
|
// 直播观众端 RoomId 与 UserId 保持一致
|
|
26288
26302
|
return Object.assign({ 'App-Key': this._context.getAppkey(), RoomId: userId, Token: this._joinResData.token, RoomType: RTCMode.LIVE, UserId: userId, 'Session-Id': this._sessionId, 'Client-Session-Id': this._clientSessionId }, peerConnectionId);
|
|
26289
26303
|
}
|
|
26290
|
-
_exchangeHandle(body) {
|
|
26291
|
-
|
|
26304
|
+
_exchangeHandle(body, reTry = 0) {
|
|
26305
|
+
var _a;
|
|
26306
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26307
|
+
Object.assign(Object.assign({}, this._getReqHeaders()), { capabilityVersion: 1 });
|
|
26308
|
+
const res = yield this._service.broadcastSubscribe(this._getReqHeaders(), body);
|
|
26309
|
+
const subscribeErrorList = (_a = res.data) === null || _a === void 0 ? void 0 : _a.subscribeErrorList;
|
|
26310
|
+
if (subscribeErrorList
|
|
26311
|
+
&& subscribeErrorList.length > 0
|
|
26312
|
+
&& reTry > 0
|
|
26313
|
+
&& subscribeErrorList.some((item) => item.IsRetry)) {
|
|
26314
|
+
return this._exchangeHandle(body, reTry - 1);
|
|
26315
|
+
}
|
|
26316
|
+
return res;
|
|
26317
|
+
});
|
|
26292
26318
|
}
|
|
26293
26319
|
_updateSubListHandle(tracks, forceReq = false, traceId) {
|
|
26294
26320
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
@@ -26346,7 +26372,7 @@ class RCAudienceLivingRoom {
|
|
|
26346
26372
|
recordQualityUnsubscribeData(this._roomId, this._clientSessionId, this._sessionId);
|
|
26347
26373
|
// MediaServer 交互
|
|
26348
26374
|
const { reqBody } = yield this._createSubscribeParams(attrs, {}, false);
|
|
26349
|
-
const result = yield this._exchangeHandle(reqBody);
|
|
26375
|
+
const result = yield this._exchangeHandle(reqBody, 2);
|
|
26350
26376
|
if (crtSubList.length) {
|
|
26351
26377
|
// 取消订阅时,清除 parseRTCReport 模块中存储的数据
|
|
26352
26378
|
const resourceIds = [];
|
|
@@ -26363,7 +26389,7 @@ class RCAudienceLivingRoom {
|
|
|
26363
26389
|
}), traceId);
|
|
26364
26390
|
return { code: result.code };
|
|
26365
26391
|
}
|
|
26366
|
-
const { sdp: answer, resultCode, message, subscribedList, } = result.data;
|
|
26392
|
+
const { sdp: answer, resultCode, message, subscribedList, subscribeErrorList, } = result.data;
|
|
26367
26393
|
if (resultCode !== exports.RCRTCCode.SUCCESS) {
|
|
26368
26394
|
reportQualitySubscribeAndUnsubscribeData(attrs, resultCode);
|
|
26369
26395
|
(_h = (_g = this._context) === null || _g === void 0 ? void 0 : _g.logger) === null || _h === void 0 ? void 0 : _h.error(RCLoggerTag.L_AUDIENCE_LIVING_ROOM_UPDATE_SUBSCRIBELIST_R, JSON.stringify({
|
|
@@ -26395,17 +26421,28 @@ class RCAudienceLivingRoom {
|
|
|
26395
26421
|
}
|
|
26396
26422
|
reportQualitySubscribeAndUnsubscribeData(attrs, resCode);
|
|
26397
26423
|
// 获取真正订阅成功的资源
|
|
26398
|
-
const subSuccessTrackIds = subscribedList
|
|
26424
|
+
// const subSuccessTrackIds = subscribedList?.map((item) => `${item.msid}_${item.mediaType}`);
|
|
26425
|
+
// const subSuccessList = attrs.filter((item) => {
|
|
26426
|
+
// if (item.track.isMCUTrack()) {
|
|
26427
|
+
// const serverTrackInfo = this._roomRes[item.track.getTrackId()];
|
|
26428
|
+
// const sdpResourceId = `${serverTrackInfo.msid}_${serverTrackInfo.mediaType}`;
|
|
26429
|
+
// return subSuccessTrackIds.includes(sdpResourceId);
|
|
26430
|
+
// }
|
|
26431
|
+
// return subSuccessTrackIds?.includes(item.track.getTrackId());
|
|
26432
|
+
// });
|
|
26433
|
+
// const afterReplaceTrackIds = subSuccessList?.map((item) => `${item.track.getTrackId()}`);
|
|
26434
|
+
// const failedList = attrs.filter((item) => !afterReplaceTrackIds?.includes(item.track.getTrackId()));
|
|
26435
|
+
const subFailedTrackIds = (subscribeErrorList === null || subscribeErrorList === void 0 ? void 0 : subscribeErrorList.map((item) => `${item.msid}_${item.mediaType}`)) || [];
|
|
26399
26436
|
const subSuccessList = attrs.filter((item) => {
|
|
26400
26437
|
if (item.track.isMCUTrack()) {
|
|
26401
26438
|
const serverTrackInfo = this._roomRes[item.track.getTrackId()];
|
|
26402
26439
|
const sdpResourceId = `${serverTrackInfo.msid}_${serverTrackInfo.mediaType}`;
|
|
26403
|
-
return
|
|
26440
|
+
return !subFailedTrackIds.includes(sdpResourceId);
|
|
26404
26441
|
}
|
|
26405
|
-
return
|
|
26442
|
+
return !(subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
26406
26443
|
});
|
|
26407
|
-
const
|
|
26408
|
-
const
|
|
26444
|
+
const failedList = attrs.filter((item) => subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
26445
|
+
const subSuccessTrackIds = subSuccessList === null || subSuccessList === void 0 ? void 0 : subSuccessList.map((item) => item.track.getTrackId());
|
|
26409
26446
|
// 更新 remoteTrack.isSubscribed
|
|
26410
26447
|
for (const trackId in this._remoteTracks) {
|
|
26411
26448
|
const subed = subSuccessList.some((item) => item.track.getTrackId() === trackId);
|
|
@@ -28044,7 +28081,7 @@ class RCRTCClient extends RCMediaStreamCapture {
|
|
|
28044
28081
|
}
|
|
28045
28082
|
reportSDKInfo() {
|
|
28046
28083
|
this._context.reportSDKInfo({
|
|
28047
|
-
'plugin-rtc': "5.6.
|
|
28084
|
+
'plugin-rtc': "5.6.6-beem-alpha.2",
|
|
28048
28085
|
});
|
|
28049
28086
|
}
|
|
28050
28087
|
}
|
|
@@ -29037,7 +29074,7 @@ const installer = {
|
|
|
29037
29074
|
console.error('Please use the https protocol or use `http://localhost` to open the page!');
|
|
29038
29075
|
return false;
|
|
29039
29076
|
}
|
|
29040
|
-
engine.VersionManage.add('plugin-rtc', "5.6.
|
|
29077
|
+
engine.VersionManage.add('plugin-rtc', "5.6.6-beem-alpha.2");
|
|
29041
29078
|
if (!engine.VersionManage.validEngine("^5.6.0")) {
|
|
29042
29079
|
console.error(`The current engine version '${engine.VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"^5.6.0"}'.`);
|
|
29043
29080
|
return false;
|
|
@@ -29051,8 +29088,8 @@ const installer = {
|
|
|
29051
29088
|
RTCLogger.setLogger(originLogger);
|
|
29052
29089
|
logger.setLogger(originLogger);
|
|
29053
29090
|
originLogger.warn(RCLoggerTag.L_INDEX_INSTALL_RTC_PLUGIN_O, JSON.stringify({
|
|
29054
|
-
'RCRTC Version': "5.6.
|
|
29055
|
-
Commit: "
|
|
29091
|
+
'RCRTC Version': "5.6.6-beem-alpha.2",
|
|
29092
|
+
Commit: "a1dff2135dffdf1e99f50dccb01d304fd4c661cd",
|
|
29056
29093
|
'browserInfo.browser': browserInfo.browser,
|
|
29057
29094
|
'browserInfo.supportsUnifiedPlan': browserInfo.supportsUnifiedPlan,
|
|
29058
29095
|
'browserInfo.version': browserInfo.version,
|
package/dist/index.umd.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* RCRTC - v5.6.
|
|
3
|
-
* CommitId -
|
|
4
|
-
*
|
|
2
|
+
* RCRTC - v5.6.6-beem-alpha.2
|
|
3
|
+
* CommitId - a1dff2135dffdf1e99f50dccb01d304fd4c661cd
|
|
4
|
+
* Thu Dec 15 2022 16:13:38 GMT+0800 (China Standard Time)
|
|
5
5
|
* ©2020 RongCloud, Inc. All rights reserved.
|
|
6
6
|
*/
|
|
7
7
|
(function (global, factory) {
|
|
@@ -6934,7 +6934,7 @@
|
|
|
6934
6934
|
}));
|
|
6935
6935
|
};
|
|
6936
6936
|
this._element.oncanplay = (evt) => __awaiter(this, void 0, void 0, function* () {
|
|
6937
|
-
var _p, _q, _r, _s, _t, _u, _v, _w;
|
|
6937
|
+
var _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
6938
6938
|
// 可以播放
|
|
6939
6939
|
(_p = this._logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_TRACK_CANPLAY_O, JSON.stringify({
|
|
6940
6940
|
status: RCLoggerStatus.INFO,
|
|
@@ -6956,15 +6956,15 @@
|
|
|
6956
6956
|
status: RCLoggerStatus.FAILED,
|
|
6957
6957
|
kind: (_u = this._kind) !== null && _u !== void 0 ? _u : '',
|
|
6958
6958
|
code: exports.RCRTCCode.NO_PERMISSION_TO_USE_REQUESTED_DEVICE,
|
|
6959
|
-
msg: `setSinkId failed, error msg: ${error.message}`,
|
|
6959
|
+
msg: `setSinkId failed, error msg: ${error.message} -> id: ${(_v = evt.target) === null || _v === void 0 ? void 0 : _v.id}, trackId: ${this._id}`,
|
|
6960
6960
|
}));
|
|
6961
6961
|
return;
|
|
6962
6962
|
}
|
|
6963
|
-
(
|
|
6963
|
+
(_w = this._logger) === null || _w === void 0 ? void 0 : _w.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
|
|
6964
6964
|
status: RCLoggerStatus.FAILED,
|
|
6965
6965
|
code: exports.RCRTCCode.TRACK_PLAY_ERROR,
|
|
6966
|
-
kind: (
|
|
6967
|
-
msg: `play error, error msg: ${error.message}`,
|
|
6966
|
+
kind: (_x = this._kind) !== null && _x !== void 0 ? _x : '',
|
|
6967
|
+
msg: `play error, error msg: ${error.message} -> id: ${(_y = evt.target) === null || _y === void 0 ? void 0 : _y.id}, trackId: ${this._id}`,
|
|
6968
6968
|
}));
|
|
6969
6969
|
}
|
|
6970
6970
|
});
|
|
@@ -14816,7 +14816,7 @@
|
|
|
14816
14816
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
14817
14817
|
'Cache-Control': 'no-cache',
|
|
14818
14818
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
14819
|
-
ClientVersion: "5.6.
|
|
14819
|
+
ClientVersion: "5.6.6-beem-alpha.2",
|
|
14820
14820
|
'Client-Session-Id': getUUID(),
|
|
14821
14821
|
'Request-Id': Date.now().toString(),
|
|
14822
14822
|
});
|
|
@@ -15401,7 +15401,7 @@
|
|
|
15401
15401
|
'Content-Type': 'application/json;charset=UTF-8',
|
|
15402
15402
|
'Cache-Control': 'no-cache',
|
|
15403
15403
|
ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
|
|
15404
|
-
ClientVersion: "5.6.
|
|
15404
|
+
ClientVersion: "5.6.6-beem-alpha.2",
|
|
15405
15405
|
'Client-Session-Id': getUUID(),
|
|
15406
15406
|
'Request-Id': Date.now().toString(),
|
|
15407
15407
|
});
|
|
@@ -18693,7 +18693,7 @@
|
|
|
18693
18693
|
* 加入房间
|
|
18694
18694
|
*/
|
|
18695
18695
|
sendR1() {
|
|
18696
|
-
const rtcVersion = "5.6.
|
|
18696
|
+
const rtcVersion = "5.6.6-beem-alpha.2";
|
|
18697
18697
|
const imVersion = this._context.getCoreVersion();
|
|
18698
18698
|
const platform = 'web';
|
|
18699
18699
|
const pcName = navigator.platform;
|
|
@@ -18843,7 +18843,7 @@
|
|
|
18843
18843
|
_formatR1Data() {
|
|
18844
18844
|
return {
|
|
18845
18845
|
joinTime: this._context.userJoinTime || 0,
|
|
18846
|
-
rtcVersion: "5.6.
|
|
18846
|
+
rtcVersion: "5.6.6-beem-alpha.2",
|
|
18847
18847
|
imVersion: this._context.getCoreVersion(),
|
|
18848
18848
|
platform: 'web',
|
|
18849
18849
|
device: navigator.platform,
|
|
@@ -20144,12 +20144,13 @@
|
|
|
20144
20144
|
}
|
|
20145
20145
|
|
|
20146
20146
|
class UpdateSubscribeListCommand extends BaseCommand {
|
|
20147
|
-
constructor(tracks, subhook, forceReq, traceId) {
|
|
20147
|
+
constructor(tracks, subhook, forceReq, traceId, reTry = 0) {
|
|
20148
20148
|
super();
|
|
20149
20149
|
this.tracks = tracks;
|
|
20150
20150
|
this.subhook = subhook;
|
|
20151
20151
|
this.forceReq = forceReq;
|
|
20152
20152
|
this.traceId = traceId;
|
|
20153
|
+
this.reTry = reTry;
|
|
20153
20154
|
}
|
|
20154
20155
|
get kind() {
|
|
20155
20156
|
return RCCommandKind.UPDATE_SUBSCRIBE_LIST;
|
|
@@ -20157,7 +20158,7 @@
|
|
|
20157
20158
|
execute(store, invoker) {
|
|
20158
20159
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
20159
20160
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20160
|
-
const { tracks, forceReq } = this;
|
|
20161
|
+
const { tracks, forceReq, reTry } = this;
|
|
20161
20162
|
const { roomId } = store;
|
|
20162
20163
|
(_b = (_a = store.context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_UPDATE_SUBSCRIBELIST_COMMAND_T, `roomId: ${roomId}, forceReq: ${forceReq}, trackIds: ${tracks.map(getTrackIdFromAttr)}`, this.traceId);
|
|
20163
20164
|
if (!engine.validate('tracks', tracks, () => engine.isArray(tracks) && tracks.every((res) => res instanceof RCRemoteTrack || res.track instanceof RCRemoteTrack), true)) {
|
|
@@ -20233,6 +20234,7 @@
|
|
|
20233
20234
|
* 直播房间需携带 pushOtherRooms 信息
|
|
20234
20235
|
*/
|
|
20235
20236
|
pushOtherRooms && (reqBody.pushOtherRooms = pushOtherRooms);
|
|
20237
|
+
// TODO: 订阅失败重试
|
|
20236
20238
|
const result = yield new ExchangeCommand(headers, reqBody, this.traceId, true).execute(store, invoker);
|
|
20237
20239
|
attrs.map((item) => item.track.getTrackId());
|
|
20238
20240
|
if (result.code !== exports.RCRTCCode.SUCCESS) {
|
|
@@ -20243,7 +20245,7 @@
|
|
|
20243
20245
|
}), this.traceId);
|
|
20244
20246
|
return { code: result.code };
|
|
20245
20247
|
}
|
|
20246
|
-
const { sdp: answer, resultCode, message, subscribedList, } = result.data;
|
|
20248
|
+
const { sdp: answer, resultCode, message, subscribedList, subscribeErrorList, } = result.data;
|
|
20247
20249
|
if (resultCode !== exports.RCRTCCode.SUCCESS) {
|
|
20248
20250
|
reportQualitySubscribeAndUnsubscribeData(attrs, resultCode);
|
|
20249
20251
|
(_m = (_l = store.context) === null || _l === void 0 ? void 0 : _l.logger) === null || _m === void 0 ? void 0 : _m.error(RCLoggerTag.L_UPDATE_SUBSCRIBELIST_COMMAND_R, JSON.stringify({
|
|
@@ -20252,6 +20254,12 @@
|
|
|
20252
20254
|
}), this.traceId);
|
|
20253
20255
|
return { code: resultCode };
|
|
20254
20256
|
}
|
|
20257
|
+
if (subscribeErrorList
|
|
20258
|
+
&& subscribeErrorList.length > 0
|
|
20259
|
+
&& reTry > 0
|
|
20260
|
+
&& subscribeErrorList.some((item) => item.IsRetry)) {
|
|
20261
|
+
return new UpdateSubscribeListCommand(this.tracks, this.subhook, true, this.traceId, reTry - 1).execute(store, invoker);
|
|
20262
|
+
}
|
|
20255
20263
|
const resCode = yield pc.setRemoteAnswer(answer.sdp);
|
|
20256
20264
|
if (resCode !== exports.RCRTCCode.SUCCESS) {
|
|
20257
20265
|
// 连通率相关埋点-订阅日志上报
|
|
@@ -20268,9 +20276,13 @@
|
|
|
20268
20276
|
},
|
|
20269
20277
|
});
|
|
20270
20278
|
// 获取真正订阅成功的资源
|
|
20271
|
-
const subSuccessTrackIds = subscribedList
|
|
20272
|
-
const subSuccessList = attrs.filter((item) => subSuccessTrackIds
|
|
20273
|
-
const failedList = attrs.filter((item) => !
|
|
20279
|
+
// const subSuccessTrackIds = subscribedList?.map((item) => `${item.msid}_${item.mediaType}`);
|
|
20280
|
+
// const subSuccessList = attrs.filter((item) => subSuccessTrackIds?.includes(item.track.getTrackId()));
|
|
20281
|
+
// const failedList = attrs.filter((item) => !subSuccessTrackIds?.includes(item.track.getTrackId()));
|
|
20282
|
+
const subFailedTrackIds = subscribeErrorList === null || subscribeErrorList === void 0 ? void 0 : subscribeErrorList.map((item) => `${item.msid}_${item.mediaType}`);
|
|
20283
|
+
const subSuccessList = attrs.filter((item) => !(subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId())));
|
|
20284
|
+
const failedList = attrs.filter((item) => subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
20285
|
+
const subSuccessTrackIds = subSuccessList === null || subSuccessList === void 0 ? void 0 : subSuccessList.map((item) => item.track.getTrackId());
|
|
20274
20286
|
(_p = (_o = store.context) === null || _o === void 0 ? void 0 : _o.logger) === null || _p === void 0 ? void 0 : _p.info(RCLoggerTag.L_ABSTRACT_ROOM_SUBSCRIBE_R, JSON.stringify({
|
|
20275
20287
|
status: RCLoggerStatus.SUCCESSED,
|
|
20276
20288
|
subSuccessTrackIds,
|
|
@@ -20321,7 +20333,7 @@
|
|
|
20321
20333
|
// 北极星上报
|
|
20322
20334
|
store.polarisReport.sendR2(R2Action.SUBSCRIBE, R2Status.END, tracks.map((item) => item.getTrackId()));
|
|
20323
20335
|
recordUnsubscribeCommand(true);
|
|
20324
|
-
return new UpdateSubscribeListCommand(crtSubList, this.subhook, false, this.traceId).execute(store, invoker);
|
|
20336
|
+
return new UpdateSubscribeListCommand(crtSubList, this.subhook, false, this.traceId, 2).execute(store, invoker);
|
|
20325
20337
|
});
|
|
20326
20338
|
}
|
|
20327
20339
|
}
|
|
@@ -20382,6 +20394,8 @@
|
|
|
20382
20394
|
})),
|
|
20383
20395
|
switchstream: false,
|
|
20384
20396
|
// switchstream: !!this._initOptions.autoSwitchStream
|
|
20397
|
+
// 标识客户端处理能力,当前值 1,表示处理订阅错误列表能力。
|
|
20398
|
+
capabilityVersion: 1,
|
|
20385
20399
|
};
|
|
20386
20400
|
return reqBody;
|
|
20387
20401
|
});
|
|
@@ -20848,7 +20862,7 @@
|
|
|
20848
20862
|
// 重新订阅二次发布资源
|
|
20849
20863
|
if (subedTracks.length) {
|
|
20850
20864
|
const trackIds = subedTracks.map((item) => item.getTrackId());
|
|
20851
|
-
const { code } = yield new UpdateSubscribeListCommand(subedTracks, this.subhook, true, this.traceId).execute(store, invoker);
|
|
20865
|
+
const { code } = yield new UpdateSubscribeListCommand(subedTracks, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
20852
20866
|
if (code !== exports.RCRTCCode.SUCCESS) {
|
|
20853
20867
|
(_b = (_a = store.context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.error(RCLoggerTag.L_RESUB_REPUB_RES_R, JSON.stringify({
|
|
20854
20868
|
status: RCLoggerStatus.FAILED,
|
|
@@ -20968,7 +20982,7 @@
|
|
|
20968
20982
|
// 北极星上报
|
|
20969
20983
|
store.polarisReport.sendR2(R2Action.SUBSCRIBE, R2Status.BEGIN, R2TrackIds);
|
|
20970
20984
|
recordSubscribeCommand(true);
|
|
20971
|
-
return new UpdateSubscribeListCommand(crtSubList, this.subhook, true, this.traceId).execute(store, invoker);
|
|
20985
|
+
return new UpdateSubscribeListCommand(crtSubList, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
20972
20986
|
});
|
|
20973
20987
|
}
|
|
20974
20988
|
}
|
|
@@ -21810,7 +21824,7 @@
|
|
|
21810
21824
|
if (this.state === RCLinkedListPoint.NORMAL) {
|
|
21811
21825
|
// 获取原订阅列表
|
|
21812
21826
|
const originTracks = store.getSubscribedList().slice();
|
|
21813
|
-
const { code: updateSuscribeCode, failedList } = yield new UpdateSubscribeListCommand(tracks, this.subhook, true, this.traceId).execute(store, invoker);
|
|
21827
|
+
const { code: updateSuscribeCode, failedList } = yield new UpdateSubscribeListCommand(tracks, this.subhook, true, this.traceId, 2).execute(store, invoker);
|
|
21814
21828
|
// 获取新的订阅列表
|
|
21815
21829
|
const subscribedTracks = store.getSubscribedList().slice();
|
|
21816
21830
|
// 计算订阅列表 Diff
|
|
@@ -22980,7 +22994,7 @@
|
|
|
22980
22994
|
updateSubList(tracks) {
|
|
22981
22995
|
var _a, _b;
|
|
22982
22996
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22983
|
-
return this._invoker.push(new UpdateSubscribeListCommand(tracks, this._subhook.bind(this), true, (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId()));
|
|
22997
|
+
return this._invoker.push(new UpdateSubscribeListCommand(tracks, this._subhook.bind(this), true, (_b = (_a = this._context) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.createTraceId(), 2));
|
|
22984
22998
|
});
|
|
22985
22999
|
}
|
|
22986
23000
|
/**
|
|
@@ -26112,7 +26126,7 @@
|
|
|
26112
26126
|
var _a;
|
|
26113
26127
|
const { reqBody } = yield this._createSubscribeParams(this._subscribedList, {}, true);
|
|
26114
26128
|
// 发送 /exchange 请求
|
|
26115
|
-
const resp = yield this._exchangeHandle(reqBody);
|
|
26129
|
+
const resp = yield this._exchangeHandle(reqBody, 2);
|
|
26116
26130
|
if (resp.code !== exports.RCRTCCode.SUCCESS) {
|
|
26117
26131
|
return { code: resp.code };
|
|
26118
26132
|
}
|
|
@@ -26287,8 +26301,20 @@
|
|
|
26287
26301
|
// 直播观众端 RoomId 与 UserId 保持一致
|
|
26288
26302
|
return Object.assign({ 'App-Key': this._context.getAppkey(), RoomId: userId, Token: this._joinResData.token, RoomType: RTCMode.LIVE, UserId: userId, 'Session-Id': this._sessionId, 'Client-Session-Id': this._clientSessionId }, peerConnectionId);
|
|
26289
26303
|
}
|
|
26290
|
-
_exchangeHandle(body) {
|
|
26291
|
-
|
|
26304
|
+
_exchangeHandle(body, reTry = 0) {
|
|
26305
|
+
var _a;
|
|
26306
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26307
|
+
Object.assign(Object.assign({}, this._getReqHeaders()), { capabilityVersion: 1 });
|
|
26308
|
+
const res = yield this._service.broadcastSubscribe(this._getReqHeaders(), body);
|
|
26309
|
+
const subscribeErrorList = (_a = res.data) === null || _a === void 0 ? void 0 : _a.subscribeErrorList;
|
|
26310
|
+
if (subscribeErrorList
|
|
26311
|
+
&& subscribeErrorList.length > 0
|
|
26312
|
+
&& reTry > 0
|
|
26313
|
+
&& subscribeErrorList.some((item) => item.IsRetry)) {
|
|
26314
|
+
return this._exchangeHandle(body, reTry - 1);
|
|
26315
|
+
}
|
|
26316
|
+
return res;
|
|
26317
|
+
});
|
|
26292
26318
|
}
|
|
26293
26319
|
_updateSubListHandle(tracks, forceReq = false, traceId) {
|
|
26294
26320
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
@@ -26346,7 +26372,7 @@
|
|
|
26346
26372
|
recordQualityUnsubscribeData(this._roomId, this._clientSessionId, this._sessionId);
|
|
26347
26373
|
// MediaServer 交互
|
|
26348
26374
|
const { reqBody } = yield this._createSubscribeParams(attrs, {}, false);
|
|
26349
|
-
const result = yield this._exchangeHandle(reqBody);
|
|
26375
|
+
const result = yield this._exchangeHandle(reqBody, 2);
|
|
26350
26376
|
if (crtSubList.length) {
|
|
26351
26377
|
// 取消订阅时,清除 parseRTCReport 模块中存储的数据
|
|
26352
26378
|
const resourceIds = [];
|
|
@@ -26363,7 +26389,7 @@
|
|
|
26363
26389
|
}), traceId);
|
|
26364
26390
|
return { code: result.code };
|
|
26365
26391
|
}
|
|
26366
|
-
const { sdp: answer, resultCode, message, subscribedList, } = result.data;
|
|
26392
|
+
const { sdp: answer, resultCode, message, subscribedList, subscribeErrorList, } = result.data;
|
|
26367
26393
|
if (resultCode !== exports.RCRTCCode.SUCCESS) {
|
|
26368
26394
|
reportQualitySubscribeAndUnsubscribeData(attrs, resultCode);
|
|
26369
26395
|
(_h = (_g = this._context) === null || _g === void 0 ? void 0 : _g.logger) === null || _h === void 0 ? void 0 : _h.error(RCLoggerTag.L_AUDIENCE_LIVING_ROOM_UPDATE_SUBSCRIBELIST_R, JSON.stringify({
|
|
@@ -26395,17 +26421,28 @@
|
|
|
26395
26421
|
}
|
|
26396
26422
|
reportQualitySubscribeAndUnsubscribeData(attrs, resCode);
|
|
26397
26423
|
// 获取真正订阅成功的资源
|
|
26398
|
-
const subSuccessTrackIds = subscribedList
|
|
26424
|
+
// const subSuccessTrackIds = subscribedList?.map((item) => `${item.msid}_${item.mediaType}`);
|
|
26425
|
+
// const subSuccessList = attrs.filter((item) => {
|
|
26426
|
+
// if (item.track.isMCUTrack()) {
|
|
26427
|
+
// const serverTrackInfo = this._roomRes[item.track.getTrackId()];
|
|
26428
|
+
// const sdpResourceId = `${serverTrackInfo.msid}_${serverTrackInfo.mediaType}`;
|
|
26429
|
+
// return subSuccessTrackIds.includes(sdpResourceId);
|
|
26430
|
+
// }
|
|
26431
|
+
// return subSuccessTrackIds?.includes(item.track.getTrackId());
|
|
26432
|
+
// });
|
|
26433
|
+
// const afterReplaceTrackIds = subSuccessList?.map((item) => `${item.track.getTrackId()}`);
|
|
26434
|
+
// const failedList = attrs.filter((item) => !afterReplaceTrackIds?.includes(item.track.getTrackId()));
|
|
26435
|
+
const subFailedTrackIds = (subscribeErrorList === null || subscribeErrorList === void 0 ? void 0 : subscribeErrorList.map((item) => `${item.msid}_${item.mediaType}`)) || [];
|
|
26399
26436
|
const subSuccessList = attrs.filter((item) => {
|
|
26400
26437
|
if (item.track.isMCUTrack()) {
|
|
26401
26438
|
const serverTrackInfo = this._roomRes[item.track.getTrackId()];
|
|
26402
26439
|
const sdpResourceId = `${serverTrackInfo.msid}_${serverTrackInfo.mediaType}`;
|
|
26403
|
-
return
|
|
26440
|
+
return !subFailedTrackIds.includes(sdpResourceId);
|
|
26404
26441
|
}
|
|
26405
|
-
return
|
|
26442
|
+
return !(subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
26406
26443
|
});
|
|
26407
|
-
const
|
|
26408
|
-
const
|
|
26444
|
+
const failedList = attrs.filter((item) => subFailedTrackIds === null || subFailedTrackIds === void 0 ? void 0 : subFailedTrackIds.includes(item.track.getTrackId()));
|
|
26445
|
+
const subSuccessTrackIds = subSuccessList === null || subSuccessList === void 0 ? void 0 : subSuccessList.map((item) => item.track.getTrackId());
|
|
26409
26446
|
// 更新 remoteTrack.isSubscribed
|
|
26410
26447
|
for (const trackId in this._remoteTracks) {
|
|
26411
26448
|
const subed = subSuccessList.some((item) => item.track.getTrackId() === trackId);
|
|
@@ -28044,7 +28081,7 @@
|
|
|
28044
28081
|
}
|
|
28045
28082
|
reportSDKInfo() {
|
|
28046
28083
|
this._context.reportSDKInfo({
|
|
28047
|
-
'plugin-rtc': "5.6.
|
|
28084
|
+
'plugin-rtc': "5.6.6-beem-alpha.2",
|
|
28048
28085
|
});
|
|
28049
28086
|
}
|
|
28050
28087
|
}
|
|
@@ -29037,7 +29074,7 @@ message probuf {
|
|
|
29037
29074
|
console.error('Please use the https protocol or use `http://localhost` to open the page!');
|
|
29038
29075
|
return false;
|
|
29039
29076
|
}
|
|
29040
|
-
engine.VersionManage.add('plugin-rtc', "5.6.
|
|
29077
|
+
engine.VersionManage.add('plugin-rtc', "5.6.6-beem-alpha.2");
|
|
29041
29078
|
if (!engine.VersionManage.validEngine("^5.6.0")) {
|
|
29042
29079
|
console.error(`The current engine version '${engine.VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"^5.6.0"}'.`);
|
|
29043
29080
|
return false;
|
|
@@ -29051,8 +29088,8 @@ message probuf {
|
|
|
29051
29088
|
RTCLogger.setLogger(originLogger);
|
|
29052
29089
|
logger.setLogger(originLogger);
|
|
29053
29090
|
originLogger.warn(RCLoggerTag.L_INDEX_INSTALL_RTC_PLUGIN_O, JSON.stringify({
|
|
29054
|
-
'RCRTC Version': "5.6.
|
|
29055
|
-
Commit: "
|
|
29091
|
+
'RCRTC Version': "5.6.6-beem-alpha.2",
|
|
29092
|
+
Commit: "a1dff2135dffdf1e99f50dccb01d304fd4c661cd",
|
|
29056
29093
|
'browserInfo.browser': browserInfo.browser,
|
|
29057
29094
|
'browserInfo.supportsUnifiedPlan': browserInfo.supportsUnifiedPlan,
|
|
29058
29095
|
'browserInfo.version': browserInfo.version,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rongcloud/plugin-rtc",
|
|
3
|
-
"version": "5.6.
|
|
3
|
+
"version": "5.6.6-beem-alpha.2",
|
|
4
4
|
"description": "@rongcloud/plugin-rtc",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"__attrs__": {
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@rongcloud/engine": "^5.6.0"
|
|
35
35
|
},
|
|
36
|
-
"__commit__": "
|
|
36
|
+
"__commit__": "a1dff2135dffdf1e99f50dccb01d304fd4c661cd"
|
|
37
37
|
}
|