@flashphoner/websdk 2.0.263 → 2.0.264

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.
@@ -12232,7 +12232,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12232
12232
  },
12233
12233
  collectMetrics: function () {
12234
12234
  var _collectMetrics = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {
12235
- var stats, metrics, lostMetrics;
12235
+ var stats, metrics, lostMetrics, headersUpdated;
12236
12236
  return _regenerator().w(function (_context6) {
12237
12237
  while (1) switch (_context6.n) {
12238
12238
  case 0:
@@ -12247,9 +12247,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12247
12247
  return statCollector.mediaConnection.getWebRTCStats();
12248
12248
  case 1:
12249
12249
  stats = _context6.v;
12250
- if (!statCollector.metricsBatch) {
12251
- statCollector.metricsBatch = [];
12252
- }
12250
+ statCollector.startNewBatch();
12253
12251
  metrics = [];
12254
12252
  lostMetrics = [];
12255
12253
  statCollector.headers.split(",").forEach(function (header) {
@@ -12259,7 +12257,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12259
12257
  id: components[1],
12260
12258
  name: components[2]
12261
12259
  };
12262
- var value = "NO";
12260
+ var value = null;
12263
12261
  if (stats[descriptor.type]) {
12264
12262
  var _iterator2 = _createForOfIteratorHelper(stats[descriptor.type]),
12265
12263
  _step2;
@@ -12277,36 +12275,44 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12277
12275
  _iterator2.f();
12278
12276
  }
12279
12277
  }
12280
- metrics.push(value);
12281
- if (value == "NO") {
12278
+ if (value === null) {
12282
12279
  lostMetrics.push(descriptor);
12280
+ } else {
12281
+ metrics.push(value);
12283
12282
  }
12284
12283
  });
12285
- if (lostMetrics.length) {
12286
- statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "Missing metrics: " + JSON.stringify(lostMetrics));
12287
- }
12288
- statCollector.metricsBatch.push(metrics);
12289
- statCollector.batchCount--;
12290
- if (!(statCollector.batchCount === 0)) {
12291
- _context6.n = 2;
12292
- break;
12293
- }
12284
+ // Metrics list may change if some metrics are added or some metrics are lost #WCS-4627
12294
12285
  _context6.n = 2;
12295
- return statCollector.sendMetrics();
12286
+ return statCollector.updateHeaders(stats);
12296
12287
  case 2:
12288
+ headersUpdated = _context6.v;
12289
+ if (!lostMetrics.length) {
12290
+ _context6.n = 4;
12291
+ break;
12292
+ }
12293
+ statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "Missing metrics: " + JSON.stringify(lostMetrics));
12294
+ // Send metrics already collected and start a new batch with current metrics array to send them later #WCS-4627
12297
12295
  _context6.n = 3;
12298
- return statCollector.updateHeaders(stats);
12296
+ return statCollector.sendMetrics();
12299
12297
  case 3:
12300
- if (!_context6.v) {
12298
+ statCollector.startNewBatch(metrics);
12299
+ _context6.n = 5;
12300
+ break;
12301
+ case 4:
12302
+ statCollector.metricsBatch.push(metrics);
12303
+ statCollector.batchCount--;
12304
+ if (!(statCollector.batchCount === 0 || headersUpdated)) {
12301
12305
  _context6.n = 5;
12302
12306
  break;
12303
12307
  }
12304
- statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics list has changed, sending a new metrics description");
12305
- _context6.n = 4;
12308
+ _context6.n = 5;
12306
12309
  return statCollector.sendMetrics();
12307
- case 4:
12308
- statCollector.sendHeaders();
12309
12310
  case 5:
12311
+ // Check if metrics list changed and send a new headers if needed #WCS-4619
12312
+ if (headersUpdated) {
12313
+ statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics list has changed, sending a new metrics description");
12314
+ statCollector.sendHeaders();
12315
+ }
12310
12316
  statCollector.timerBusy = false;
12311
12317
  case 6:
12312
12318
  return _context6.a(2);
@@ -12325,7 +12331,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12325
12331
  while (1) switch (_context7.p = _context7.n) {
12326
12332
  case 0:
12327
12333
  metricsToSend = [];
12328
- for (i = 0; i < statCollector.metricsBatch.length; i++) {
12334
+ for (i = 0; statCollector.metricsBatch && i < statCollector.metricsBatch.length; i++) {
12329
12335
  metricsString = "";
12330
12336
  for (j = 0; j < statCollector.metricsBatch[i].length; j++) {
12331
12337
  valueString = valueToString(statCollector.metricsBatch[i][j]);
@@ -12374,8 +12380,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12374
12380
  };
12375
12381
  statCollector.send("webRTCMetricsBatch", data);
12376
12382
  }
12377
- statCollector.metricsBatch = null;
12378
- statCollector.batchCount = statCollector.description.batchSize;
12383
+ statCollector.cleanBatch();
12379
12384
  case 7:
12380
12385
  return _context7.a(2);
12381
12386
  }
@@ -12385,7 +12390,21 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
12385
12390
  return _sendMetrics.apply(this, arguments);
12386
12391
  }
12387
12392
  return sendMetrics;
12388
- }()
12393
+ }(),
12394
+ startNewBatch: function startNewBatch(metrics) {
12395
+ if (!statCollector.metricsBatch) {
12396
+ statCollector.metricsBatch = [];
12397
+ if (metrics) {
12398
+ statCollector.metricsBatch.push(metrics);
12399
+ }
12400
+ }
12401
+ },
12402
+ cleanBatch: function cleanBatch() {
12403
+ if (statCollector.metricsBatch) {
12404
+ statCollector.metricsBatch = null;
12405
+ statCollector.batchCount = statCollector.description.batchSize;
12406
+ }
12407
+ }
12389
12408
  };
12390
12409
  return statCollector;
12391
12410
  };