@flashphoner/websdk 2.0.262 → 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.
- package/docTemplate/README.md +1 -1
- package/flashphoner-no-flash.js +101 -36
- package/flashphoner-no-flash.min.js +1 -1
- package/flashphoner-no-webrtc.js +101 -36
- package/flashphoner-no-webrtc.min.js +1 -1
- package/flashphoner-no-wsplayer.js +101 -36
- package/flashphoner-no-wsplayer.min.js +1 -1
- package/flashphoner-room-api-webrtc-only.js +101 -36
- package/flashphoner-room-api-webrtc-only.min.js +1 -1
- package/flashphoner-room-api.js +80 -31
- package/flashphoner-room-api.min.js +1 -1
- package/flashphoner-temasys-flash-websocket-without-adapterjs.js +101 -36
- package/flashphoner-temasys-flash-websocket.js +101 -36
- package/flashphoner-temasys-flash-websocket.min.js +1 -1
- package/flashphoner-webrtc-only.js +101 -36
- package/flashphoner-webrtc-only.min.js +1 -1
- package/flashphoner.js +101 -36
- package/flashphoner.min.js +1 -1
- package/package.json +1 -2
- package/src/stats-collector.js +80 -31
|
@@ -11047,6 +11047,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11047
11047
|
metricsBatch: null,
|
|
11048
11048
|
timer: null,
|
|
11049
11049
|
batchCount: 0,
|
|
11050
|
+
timerBusy: false,
|
|
11050
11051
|
start: function () {
|
|
11051
11052
|
var _start = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
11052
11053
|
var error;
|
|
@@ -11129,7 +11130,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11129
11130
|
_context2.n = 1;
|
|
11130
11131
|
break;
|
|
11131
11132
|
}
|
|
11132
|
-
statCollector.logger.error(LOG_PREFIX, "Can't update WebRTC metrics sending: no parameters passed");
|
|
11133
|
+
statCollector.logger.error(LOG_PREFIX + "-" + statCollector.id, "Can't update WebRTC metrics sending: no parameters passed");
|
|
11133
11134
|
return _context2.a(2);
|
|
11134
11135
|
case 1:
|
|
11135
11136
|
if (!(description.types || description.compression)) {
|
|
@@ -11189,14 +11190,26 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11189
11190
|
}(),
|
|
11190
11191
|
updateHeaders: function () {
|
|
11191
11192
|
var _updateHeaders = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
11192
|
-
var stats
|
|
11193
|
+
var stats,
|
|
11194
|
+
currentHeaders,
|
|
11195
|
+
headersChanged,
|
|
11196
|
+
newMetrics,
|
|
11197
|
+
_args3 = arguments;
|
|
11193
11198
|
return _regenerator().w(function (_context3) {
|
|
11194
11199
|
while (1) switch (_context3.n) {
|
|
11195
11200
|
case 0:
|
|
11201
|
+
stats = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : null;
|
|
11202
|
+
currentHeaders = "";
|
|
11203
|
+
headersChanged = false;
|
|
11204
|
+
if (stats) {
|
|
11205
|
+
_context3.n = 2;
|
|
11206
|
+
break;
|
|
11207
|
+
}
|
|
11196
11208
|
_context3.n = 1;
|
|
11197
11209
|
return statCollector.mediaConnection.getWebRTCStats();
|
|
11198
11210
|
case 1:
|
|
11199
11211
|
stats = _context3.v;
|
|
11212
|
+
case 2:
|
|
11200
11213
|
Object.keys(statCollector.description.types).forEach(function (type) {
|
|
11201
11214
|
var typeDescriptor = statCollector.description.types[type];
|
|
11202
11215
|
var metricsString = "";
|
|
@@ -11209,11 +11222,11 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11209
11222
|
}
|
|
11210
11223
|
if (stats[type]) {
|
|
11211
11224
|
stats[type].forEach(function (report) {
|
|
11212
|
-
statCollector.logger.debug(LOG_PREFIX, type + " report: " + JSON.stringify(report));
|
|
11225
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, type + " report: " + JSON.stringify(report));
|
|
11213
11226
|
if (contentFilters) {
|
|
11214
11227
|
var filtersMatched = true;
|
|
11215
11228
|
for (var filter in contentFilters) {
|
|
11216
|
-
statCollector.logger.debug(LOG_PREFIX, type + " filter by " + filter + ": " + JSON.stringify(contentFilters[filter]));
|
|
11229
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, type + " filter by " + filter + ": " + JSON.stringify(contentFilters[filter]));
|
|
11217
11230
|
var filterMatched = false;
|
|
11218
11231
|
if (report[filter]) {
|
|
11219
11232
|
var _iterator = _createForOfIteratorHelper(contentFilters[filter]),
|
|
@@ -11221,7 +11234,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11221
11234
|
try {
|
|
11222
11235
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
11223
11236
|
var value = _step.value;
|
|
11224
|
-
statCollector.logger.debug(LOG_PREFIX, filter + ": " + value + " <> " + report[filter]);
|
|
11237
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, filter + ": " + value + " <> " + report[filter]);
|
|
11225
11238
|
if (report[filter] === value) {
|
|
11226
11239
|
filterMatched = true;
|
|
11227
11240
|
break;
|
|
@@ -11239,18 +11252,30 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11239
11252
|
}
|
|
11240
11253
|
}
|
|
11241
11254
|
if (filtersMatched) {
|
|
11242
|
-
statCollector.addHeaders(report, metricsString);
|
|
11255
|
+
currentHeaders = statCollector.addHeaders(currentHeaders, report, metricsString);
|
|
11243
11256
|
}
|
|
11244
11257
|
} else {
|
|
11245
|
-
statCollector.addHeaders(report, metricsString);
|
|
11258
|
+
currentHeaders = statCollector.addHeaders(currentHeaders, report, metricsString);
|
|
11246
11259
|
}
|
|
11247
11260
|
});
|
|
11248
11261
|
} else {
|
|
11249
|
-
statCollector.logger.
|
|
11262
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, "No report type found in RTC stats: '" + type + "'");
|
|
11250
11263
|
}
|
|
11251
11264
|
});
|
|
11252
|
-
|
|
11253
|
-
|
|
11265
|
+
if (currentHeaders !== statCollector.headers) {
|
|
11266
|
+
headersChanged = true;
|
|
11267
|
+
newMetrics = [];
|
|
11268
|
+
currentHeaders.split(",").forEach(function (header) {
|
|
11269
|
+
if (statCollector.headers.indexOf(header) === -1) {
|
|
11270
|
+
newMetrics.push(header);
|
|
11271
|
+
}
|
|
11272
|
+
});
|
|
11273
|
+
if (newMetrics.length) {
|
|
11274
|
+
statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics to be collected: " + newMetrics.toString());
|
|
11275
|
+
}
|
|
11276
|
+
statCollector.headers = currentHeaders;
|
|
11277
|
+
}
|
|
11278
|
+
return _context3.a(2, headersChanged);
|
|
11254
11279
|
}
|
|
11255
11280
|
}, _callee3);
|
|
11256
11281
|
}));
|
|
@@ -11259,24 +11284,20 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11259
11284
|
}
|
|
11260
11285
|
return updateHeaders;
|
|
11261
11286
|
}(),
|
|
11262
|
-
addHeaders: function addHeaders(report, metricsString) {
|
|
11287
|
+
addHeaders: function addHeaders(currentHeaders, report, metricsString) {
|
|
11263
11288
|
if (metricsString) {
|
|
11264
11289
|
var metrics = metricsString.split(",");
|
|
11265
11290
|
metrics.forEach(function (metric) {
|
|
11266
|
-
var metricFound = false;
|
|
11267
11291
|
for (var _i = 0, _Object$keys = Object.keys(report); _i < _Object$keys.length; _i++) {
|
|
11268
11292
|
var key = _Object$keys[_i];
|
|
11269
11293
|
if (metric === key) {
|
|
11270
|
-
|
|
11271
|
-
metricFound = true;
|
|
11294
|
+
currentHeaders = util.addFieldToCsvString(currentHeaders, report.type + "." + report.id + "." + metric, ",");
|
|
11272
11295
|
break;
|
|
11273
11296
|
}
|
|
11274
11297
|
}
|
|
11275
|
-
if (!metricFound) {
|
|
11276
|
-
statCollector.logger.warn(LOG_PREFIX, "No metric found in RTC stats report '" + report.type + "': '" + metric + "'");
|
|
11277
|
-
}
|
|
11278
11298
|
});
|
|
11279
11299
|
}
|
|
11300
|
+
return currentHeaders;
|
|
11280
11301
|
},
|
|
11281
11302
|
updateCompression: function () {
|
|
11282
11303
|
var _updateCompression = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
|
|
@@ -11329,7 +11350,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11329
11350
|
case 2:
|
|
11330
11351
|
_context5.p = 2;
|
|
11331
11352
|
_t2 = _context5.v;
|
|
11332
|
-
statCollector.logger.warn(LOG_PREFIX, "Can't compress metrics data using " + compression + ": " + _t2);
|
|
11353
|
+
statCollector.logger.warn(LOG_PREFIX + "-" + statCollector.id, "Can't compress metrics data using " + compression + ": " + _t2);
|
|
11333
11354
|
statCollector.compression = "none";
|
|
11334
11355
|
case 3:
|
|
11335
11356
|
return _context5.a(2);
|
|
@@ -11350,7 +11371,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11350
11371
|
statCollector.send("webRTCMetricsClientDescription", data);
|
|
11351
11372
|
},
|
|
11352
11373
|
send: function send(message, data) {
|
|
11353
|
-
statCollector.logger.debug(LOG_PREFIX, data);
|
|
11374
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, data);
|
|
11354
11375
|
if (statCollector.wsConnection.readyState === WebSocket.OPEN) {
|
|
11355
11376
|
statCollector.wsConnection.send(JSON.stringify({
|
|
11356
11377
|
message: message,
|
|
@@ -11373,22 +11394,24 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11373
11394
|
},
|
|
11374
11395
|
collectMetrics: function () {
|
|
11375
11396
|
var _collectMetrics = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {
|
|
11376
|
-
var stats, metrics;
|
|
11397
|
+
var stats, metrics, lostMetrics, headersUpdated;
|
|
11377
11398
|
return _regenerator().w(function (_context6) {
|
|
11378
11399
|
while (1) switch (_context6.n) {
|
|
11379
11400
|
case 0:
|
|
11380
|
-
if (!statCollector.timer) {
|
|
11381
|
-
_context6.n =
|
|
11401
|
+
if (!(statCollector.timer && !statCollector.timerBusy)) {
|
|
11402
|
+
_context6.n = 6;
|
|
11382
11403
|
break;
|
|
11383
11404
|
}
|
|
11405
|
+
// Unfortunately there are no real atomics in JS unless SharedArrayBuffer is used
|
|
11406
|
+
// So we guard the timer callback with a dumb boolean
|
|
11407
|
+
statCollector.timerBusy = true;
|
|
11384
11408
|
_context6.n = 1;
|
|
11385
11409
|
return statCollector.mediaConnection.getWebRTCStats();
|
|
11386
11410
|
case 1:
|
|
11387
11411
|
stats = _context6.v;
|
|
11388
|
-
|
|
11389
|
-
statCollector.metricsBatch = [];
|
|
11390
|
-
}
|
|
11412
|
+
statCollector.startNewBatch();
|
|
11391
11413
|
metrics = [];
|
|
11414
|
+
lostMetrics = [];
|
|
11392
11415
|
statCollector.headers.split(",").forEach(function (header) {
|
|
11393
11416
|
var components = header.split(".");
|
|
11394
11417
|
var descriptor = {
|
|
@@ -11396,7 +11419,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11396
11419
|
id: components[1],
|
|
11397
11420
|
name: components[2]
|
|
11398
11421
|
};
|
|
11399
|
-
var value =
|
|
11422
|
+
var value = null;
|
|
11400
11423
|
if (stats[descriptor.type]) {
|
|
11401
11424
|
var _iterator2 = _createForOfIteratorHelper(stats[descriptor.type]),
|
|
11402
11425
|
_step2;
|
|
@@ -11414,17 +11437,46 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11414
11437
|
_iterator2.f();
|
|
11415
11438
|
}
|
|
11416
11439
|
}
|
|
11417
|
-
|
|
11440
|
+
if (value === null) {
|
|
11441
|
+
lostMetrics.push(descriptor);
|
|
11442
|
+
} else {
|
|
11443
|
+
metrics.push(value);
|
|
11444
|
+
}
|
|
11418
11445
|
});
|
|
11446
|
+
// Metrics list may change if some metrics are added or some metrics are lost #WCS-4627
|
|
11447
|
+
_context6.n = 2;
|
|
11448
|
+
return statCollector.updateHeaders(stats);
|
|
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
|
|
11457
|
+
_context6.n = 3;
|
|
11458
|
+
return statCollector.sendMetrics();
|
|
11459
|
+
case 3:
|
|
11460
|
+
statCollector.startNewBatch(metrics);
|
|
11461
|
+
_context6.n = 5;
|
|
11462
|
+
break;
|
|
11463
|
+
case 4:
|
|
11419
11464
|
statCollector.metricsBatch.push(metrics);
|
|
11420
11465
|
statCollector.batchCount--;
|
|
11421
|
-
if (!(statCollector.batchCount === 0)) {
|
|
11422
|
-
_context6.n =
|
|
11466
|
+
if (!(statCollector.batchCount === 0 || headersUpdated)) {
|
|
11467
|
+
_context6.n = 5;
|
|
11423
11468
|
break;
|
|
11424
11469
|
}
|
|
11425
|
-
_context6.n =
|
|
11470
|
+
_context6.n = 5;
|
|
11426
11471
|
return statCollector.sendMetrics();
|
|
11427
|
-
case
|
|
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
|
+
}
|
|
11478
|
+
statCollector.timerBusy = false;
|
|
11479
|
+
case 6:
|
|
11428
11480
|
return _context6.a(2);
|
|
11429
11481
|
}
|
|
11430
11482
|
}, _callee6);
|
|
@@ -11441,7 +11493,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11441
11493
|
while (1) switch (_context7.p = _context7.n) {
|
|
11442
11494
|
case 0:
|
|
11443
11495
|
metricsToSend = [];
|
|
11444
|
-
for (i = 0; i < statCollector.metricsBatch.length; i++) {
|
|
11496
|
+
for (i = 0; statCollector.metricsBatch && i < statCollector.metricsBatch.length; i++) {
|
|
11445
11497
|
metricsString = "";
|
|
11446
11498
|
for (j = 0; j < statCollector.metricsBatch[i].length; j++) {
|
|
11447
11499
|
valueString = valueToString(statCollector.metricsBatch[i][j]);
|
|
@@ -11475,7 +11527,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11475
11527
|
case 3:
|
|
11476
11528
|
_context7.p = 3;
|
|
11477
11529
|
_t3 = _context7.v;
|
|
11478
|
-
statCollector.logger.warn(LOG_PREFIX, "Can't send metrics data using" + statCollector.compression + ": " + _t3);
|
|
11530
|
+
statCollector.logger.warn(LOG_PREFIX + "-" + statCollector.id, "Can't send metrics data using" + statCollector.compression + ": " + _t3);
|
|
11479
11531
|
metricsData = null;
|
|
11480
11532
|
case 4:
|
|
11481
11533
|
_context7.n = 6;
|
|
@@ -11490,8 +11542,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11490
11542
|
};
|
|
11491
11543
|
statCollector.send("webRTCMetricsBatch", data);
|
|
11492
11544
|
}
|
|
11493
|
-
statCollector.
|
|
11494
|
-
statCollector.batchCount = statCollector.description.batchSize;
|
|
11545
|
+
statCollector.cleanBatch();
|
|
11495
11546
|
case 7:
|
|
11496
11547
|
return _context7.a(2);
|
|
11497
11548
|
}
|
|
@@ -11501,7 +11552,21 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11501
11552
|
return _sendMetrics.apply(this, arguments);
|
|
11502
11553
|
}
|
|
11503
11554
|
return sendMetrics;
|
|
11504
|
-
}()
|
|
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
|
+
}
|
|
11505
11570
|
};
|
|
11506
11571
|
return statCollector;
|
|
11507
11572
|
};
|