@flashphoner/websdk 2.0.262 → 2.0.263
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 +70 -24
- package/flashphoner-no-flash.min.js +1 -1
- package/flashphoner-no-webrtc.js +70 -24
- package/flashphoner-no-webrtc.min.js +1 -1
- package/flashphoner-no-wsplayer.js +70 -24
- package/flashphoner-no-wsplayer.min.js +1 -1
- package/flashphoner-room-api-webrtc-only.js +70 -24
- package/flashphoner-room-api-webrtc-only.min.js +1 -1
- package/flashphoner-room-api.js +53 -21
- package/flashphoner-room-api.min.js +1 -1
- package/flashphoner-temasys-flash-websocket-without-adapterjs.js +70 -24
- package/flashphoner-temasys-flash-websocket.js +70 -24
- package/flashphoner-temasys-flash-websocket.min.js +1 -1
- package/flashphoner-webrtc-only.js +70 -24
- package/flashphoner-webrtc-only.min.js +1 -1
- package/flashphoner.js +70 -24
- package/flashphoner.min.js +1 -1
- package/package.json +1 -1
- package/src/stats-collector.js +53 -21
|
@@ -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,14 +11394,17 @@ 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;
|
|
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:
|
|
@@ -11389,6 +11413,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11389
11413
|
statCollector.metricsBatch = [];
|
|
11390
11414
|
}
|
|
11391
11415
|
metrics = [];
|
|
11416
|
+
lostMetrics = [];
|
|
11392
11417
|
statCollector.headers.split(",").forEach(function (header) {
|
|
11393
11418
|
var components = header.split(".");
|
|
11394
11419
|
var descriptor = {
|
|
@@ -11396,7 +11421,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11396
11421
|
id: components[1],
|
|
11397
11422
|
name: components[2]
|
|
11398
11423
|
};
|
|
11399
|
-
var value = "
|
|
11424
|
+
var value = "NO";
|
|
11400
11425
|
if (stats[descriptor.type]) {
|
|
11401
11426
|
var _iterator2 = _createForOfIteratorHelper(stats[descriptor.type]),
|
|
11402
11427
|
_step2;
|
|
@@ -11415,7 +11440,13 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11415
11440
|
}
|
|
11416
11441
|
}
|
|
11417
11442
|
metrics.push(value);
|
|
11443
|
+
if (value == "NO") {
|
|
11444
|
+
lostMetrics.push(descriptor);
|
|
11445
|
+
}
|
|
11418
11446
|
});
|
|
11447
|
+
if (lostMetrics.length) {
|
|
11448
|
+
statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "Missing metrics: " + JSON.stringify(lostMetrics));
|
|
11449
|
+
}
|
|
11419
11450
|
statCollector.metricsBatch.push(metrics);
|
|
11420
11451
|
statCollector.batchCount--;
|
|
11421
11452
|
if (!(statCollector.batchCount === 0)) {
|
|
@@ -11425,6 +11456,21 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11425
11456
|
_context6.n = 2;
|
|
11426
11457
|
return statCollector.sendMetrics();
|
|
11427
11458
|
case 2:
|
|
11459
|
+
_context6.n = 3;
|
|
11460
|
+
return statCollector.updateHeaders(stats);
|
|
11461
|
+
case 3:
|
|
11462
|
+
if (!_context6.v) {
|
|
11463
|
+
_context6.n = 5;
|
|
11464
|
+
break;
|
|
11465
|
+
}
|
|
11466
|
+
statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics list has changed, sending a new metrics description");
|
|
11467
|
+
_context6.n = 4;
|
|
11468
|
+
return statCollector.sendMetrics();
|
|
11469
|
+
case 4:
|
|
11470
|
+
statCollector.sendHeaders();
|
|
11471
|
+
case 5:
|
|
11472
|
+
statCollector.timerBusy = false;
|
|
11473
|
+
case 6:
|
|
11428
11474
|
return _context6.a(2);
|
|
11429
11475
|
}
|
|
11430
11476
|
}, _callee6);
|
|
@@ -11475,7 +11521,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11475
11521
|
case 3:
|
|
11476
11522
|
_context7.p = 3;
|
|
11477
11523
|
_t3 = _context7.v;
|
|
11478
|
-
statCollector.logger.warn(LOG_PREFIX, "Can't send metrics data using" + statCollector.compression + ": " + _t3);
|
|
11524
|
+
statCollector.logger.warn(LOG_PREFIX + "-" + statCollector.id, "Can't send metrics data using" + statCollector.compression + ": " + _t3);
|
|
11479
11525
|
metricsData = null;
|
|
11480
11526
|
case 4:
|
|
11481
11527
|
_context7.n = 6;
|