@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.
@@ -11394,7 +11394,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11394
11394
  },
11395
11395
  collectMetrics: function () {
11396
11396
  var _collectMetrics = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {
11397
- var stats, metrics, lostMetrics;
11397
+ var stats, metrics, lostMetrics, headersUpdated;
11398
11398
  return _regenerator().w(function (_context6) {
11399
11399
  while (1) switch (_context6.n) {
11400
11400
  case 0:
@@ -11409,9 +11409,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11409
11409
  return statCollector.mediaConnection.getWebRTCStats();
11410
11410
  case 1:
11411
11411
  stats = _context6.v;
11412
- if (!statCollector.metricsBatch) {
11413
- statCollector.metricsBatch = [];
11414
- }
11412
+ statCollector.startNewBatch();
11415
11413
  metrics = [];
11416
11414
  lostMetrics = [];
11417
11415
  statCollector.headers.split(",").forEach(function (header) {
@@ -11421,7 +11419,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11421
11419
  id: components[1],
11422
11420
  name: components[2]
11423
11421
  };
11424
- var value = "NO";
11422
+ var value = null;
11425
11423
  if (stats[descriptor.type]) {
11426
11424
  var _iterator2 = _createForOfIteratorHelper(stats[descriptor.type]),
11427
11425
  _step2;
@@ -11439,36 +11437,44 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11439
11437
  _iterator2.f();
11440
11438
  }
11441
11439
  }
11442
- metrics.push(value);
11443
- if (value == "NO") {
11440
+ if (value === null) {
11444
11441
  lostMetrics.push(descriptor);
11442
+ } else {
11443
+ metrics.push(value);
11445
11444
  }
11446
11445
  });
11447
- if (lostMetrics.length) {
11448
- statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "Missing metrics: " + JSON.stringify(lostMetrics));
11449
- }
11450
- statCollector.metricsBatch.push(metrics);
11451
- statCollector.batchCount--;
11452
- if (!(statCollector.batchCount === 0)) {
11453
- _context6.n = 2;
11454
- break;
11455
- }
11446
+ // Metrics list may change if some metrics are added or some metrics are lost #WCS-4627
11456
11447
  _context6.n = 2;
11457
- return statCollector.sendMetrics();
11448
+ return statCollector.updateHeaders(stats);
11458
11449
  case 2:
11450
+ headersUpdated = _context6.v;
11451
+ if (!lostMetrics.length) {
11452
+ _context6.n = 4;
11453
+ break;
11454
+ }
11455
+ statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "Missing metrics: " + JSON.stringify(lostMetrics));
11456
+ // Send metrics already collected and start a new batch with current metrics array to send them later #WCS-4627
11459
11457
  _context6.n = 3;
11460
- return statCollector.updateHeaders(stats);
11458
+ return statCollector.sendMetrics();
11461
11459
  case 3:
11462
- if (!_context6.v) {
11460
+ statCollector.startNewBatch(metrics);
11461
+ _context6.n = 5;
11462
+ break;
11463
+ case 4:
11464
+ statCollector.metricsBatch.push(metrics);
11465
+ statCollector.batchCount--;
11466
+ if (!(statCollector.batchCount === 0 || headersUpdated)) {
11463
11467
  _context6.n = 5;
11464
11468
  break;
11465
11469
  }
11466
- statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics list has changed, sending a new metrics description");
11467
- _context6.n = 4;
11470
+ _context6.n = 5;
11468
11471
  return statCollector.sendMetrics();
11469
- case 4:
11470
- statCollector.sendHeaders();
11471
11472
  case 5:
11473
+ // Check if metrics list changed and send a new headers if needed #WCS-4619
11474
+ if (headersUpdated) {
11475
+ statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics list has changed, sending a new metrics description");
11476
+ statCollector.sendHeaders();
11477
+ }
11472
11478
  statCollector.timerBusy = false;
11473
11479
  case 6:
11474
11480
  return _context6.a(2);
@@ -11487,7 +11493,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11487
11493
  while (1) switch (_context7.p = _context7.n) {
11488
11494
  case 0:
11489
11495
  metricsToSend = [];
11490
- for (i = 0; i < statCollector.metricsBatch.length; i++) {
11496
+ for (i = 0; statCollector.metricsBatch && i < statCollector.metricsBatch.length; i++) {
11491
11497
  metricsString = "";
11492
11498
  for (j = 0; j < statCollector.metricsBatch[i].length; j++) {
11493
11499
  valueString = valueToString(statCollector.metricsBatch[i][j]);
@@ -11536,8 +11542,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11536
11542
  };
11537
11543
  statCollector.send("webRTCMetricsBatch", data);
11538
11544
  }
11539
- statCollector.metricsBatch = null;
11540
- statCollector.batchCount = statCollector.description.batchSize;
11545
+ statCollector.cleanBatch();
11541
11546
  case 7:
11542
11547
  return _context7.a(2);
11543
11548
  }
@@ -11547,7 +11552,21 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
11547
11552
  return _sendMetrics.apply(this, arguments);
11548
11553
  }
11549
11554
  return sendMetrics;
11550
- }()
11555
+ }(),
11556
+ startNewBatch: function startNewBatch(metrics) {
11557
+ if (!statCollector.metricsBatch) {
11558
+ statCollector.metricsBatch = [];
11559
+ if (metrics) {
11560
+ statCollector.metricsBatch.push(metrics);
11561
+ }
11562
+ }
11563
+ },
11564
+ cleanBatch: function cleanBatch() {
11565
+ if (statCollector.metricsBatch) {
11566
+ statCollector.metricsBatch = null;
11567
+ statCollector.batchCount = statCollector.description.batchSize;
11568
+ }
11569
+ }
11551
11570
  };
11552
11571
  return statCollector;
11553
11572
  };