@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 CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCRTC - v5.6.3-alpha.7
3
- * CommitId - 58b37e81b5a25ac7a7c2ed16fa4f996fdc6004ce
4
- * Fri Nov 18 2022 11:53:17 GMT+0800 (中国标准时间)
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-alpha.7
3
- * CommitId - 58b37e81b5a25ac7a7c2ed16fa4f996fdc6004ce
4
- * Fri Nov 18 2022 11:53:17 GMT+0800 (中国标准时间)
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
- (_b = this._logger) === null || _b === void 0 ? void 0 : _b.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_c = this._logger) === null || _c === void 0 ? void 0 : _c.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_d = this._logger) === null || _d === void 0 ? void 0 : _d.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_e = this._logger) === null || _e === void 0 ? void 0 : _e.warn(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_f = this._logger) === null || _f === void 0 ? void 0 : _f.warn(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_g = this._logger) === null || _g === void 0 ? void 0 : _g.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_h = this._logger) === null || _h === void 0 ? void 0 : _h.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- msg: `HTMLMediaElement onloadstart -> id: ${(_b = evt.target) === null || _b === void 0 ? void 0 : _b.id}, trackId: ${this._id}`,
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
- msg: `HTMLMediaElement ondurationchange -> id: ${(_b = evt.target) === null || _b === void 0 ? void 0 : _b.id}, trackId: ${this._id}`,
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
- msg: `HTMLMediaElement onloadedmetadata -> id: ${(_b = evt.target) === null || _b === void 0 ? void 0 : _b.id}, trackId: ${this._id}`,
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
- msg: `HTMLMediaElement onloadeddata -> id: ${(_b = evt.target) === null || _b === void 0 ? void 0 : _b.id}, trackId: ${this._id}`,
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
- msg: `HTMLMediaElement onabort -> id: ${(_b = evt.target) === null || _b === void 0 ? void 0 : _b.id}, trackId: ${this._id}`,
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 _k, _l, _m, _o, _p;
6933
+ var _p, _q, _r, _s, _t, _u, _v, _w;
6925
6934
  // 可以播放
6926
- (_k = this._logger) === null || _k === void 0 ? void 0 : _k.info(RCLoggerTag.L_TRACK_CANPLAY_O, JSON.stringify({
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
- msg: `HTMLMediaElement oncanplay -> id: ${(_l = evt.target) === null || _l === void 0 ? void 0 : _l.id}, trackId: ${this._id}`,
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 ((_m = this._element) === null || _m === void 0 ? void 0 : _m.play());
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
- (_o = this._logger) === null || _o === void 0 ? void 0 : _o.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_p = this._logger) === null || _p === void 0 ? void 0 : _p.error(RCLoggerTag.L_TRACK_PLAY_E, JSON.stringify({
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
- (_j = this._element) === null || _j === void 0 ? void 0 : _j.setAttribute(this.DataTrackId, this.getTrackId());
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.3-alpha.7",
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.3-alpha.7",
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: path,
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 { code } = yield this._request('/exit', headers, {});
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
- return this._request('/broadcast/subscribe', headers, body);
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 { code } = yield this._request('/broadcast/exit', headers, {});
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
- (_a = this._logger) === null || _a === void 0 ? void 0 : _a.info(RCLoggerTag.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O, JSON.stringify({
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
- (_b = this._logger) === null || _b === void 0 ? void 0 : _b.info(RCLoggerTag.L_A_SDP_STRATEGY_SET_REMOTE_ANSWER_O, JSON.stringify({
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.3-alpha.7";
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.3-alpha.7",
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}, commandLength: ${this._queue.length}`, traceId);
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
- commandLength: this._queue.length,
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
- let errorCode = yield store.context.setRTCTotalRes(roomId, [buildPlusMessage(RCRTCMessageType.PUBLISH, plus)], buildTotalURIMessageContent(allPublishList), RCRTCMessageType.TOTAL_CONTENT_RESOURCE, buildTotalURIMessageContent(crtMcuPublishList), CDNValueInfo);
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.3-alpha.7",
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.3-alpha.7");
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.3-alpha.7",
29095
- Commit: "58b37e81b5a25ac7a7c2ed16fa4f996fdc6004ce",
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,