@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
|
@@ -11619,6 +11619,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11619
11619
|
metricsBatch: null,
|
|
11620
11620
|
timer: null,
|
|
11621
11621
|
batchCount: 0,
|
|
11622
|
+
timerBusy: false,
|
|
11622
11623
|
start: function () {
|
|
11623
11624
|
var _start = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
11624
11625
|
var error;
|
|
@@ -11701,7 +11702,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11701
11702
|
_context2.n = 1;
|
|
11702
11703
|
break;
|
|
11703
11704
|
}
|
|
11704
|
-
statCollector.logger.error(LOG_PREFIX, "Can't update WebRTC metrics sending: no parameters passed");
|
|
11705
|
+
statCollector.logger.error(LOG_PREFIX + "-" + statCollector.id, "Can't update WebRTC metrics sending: no parameters passed");
|
|
11705
11706
|
return _context2.a(2);
|
|
11706
11707
|
case 1:
|
|
11707
11708
|
if (!(description.types || description.compression)) {
|
|
@@ -11761,14 +11762,26 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11761
11762
|
}(),
|
|
11762
11763
|
updateHeaders: function () {
|
|
11763
11764
|
var _updateHeaders = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
11764
|
-
var stats
|
|
11765
|
+
var stats,
|
|
11766
|
+
currentHeaders,
|
|
11767
|
+
headersChanged,
|
|
11768
|
+
newMetrics,
|
|
11769
|
+
_args3 = arguments;
|
|
11765
11770
|
return _regenerator().w(function (_context3) {
|
|
11766
11771
|
while (1) switch (_context3.n) {
|
|
11767
11772
|
case 0:
|
|
11773
|
+
stats = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : null;
|
|
11774
|
+
currentHeaders = "";
|
|
11775
|
+
headersChanged = false;
|
|
11776
|
+
if (stats) {
|
|
11777
|
+
_context3.n = 2;
|
|
11778
|
+
break;
|
|
11779
|
+
}
|
|
11768
11780
|
_context3.n = 1;
|
|
11769
11781
|
return statCollector.mediaConnection.getWebRTCStats();
|
|
11770
11782
|
case 1:
|
|
11771
11783
|
stats = _context3.v;
|
|
11784
|
+
case 2:
|
|
11772
11785
|
Object.keys(statCollector.description.types).forEach(function (type) {
|
|
11773
11786
|
var typeDescriptor = statCollector.description.types[type];
|
|
11774
11787
|
var metricsString = "";
|
|
@@ -11781,11 +11794,11 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11781
11794
|
}
|
|
11782
11795
|
if (stats[type]) {
|
|
11783
11796
|
stats[type].forEach(function (report) {
|
|
11784
|
-
statCollector.logger.debug(LOG_PREFIX, type + " report: " + JSON.stringify(report));
|
|
11797
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, type + " report: " + JSON.stringify(report));
|
|
11785
11798
|
if (contentFilters) {
|
|
11786
11799
|
var filtersMatched = true;
|
|
11787
11800
|
for (var filter in contentFilters) {
|
|
11788
|
-
statCollector.logger.debug(LOG_PREFIX, type + " filter by " + filter + ": " + JSON.stringify(contentFilters[filter]));
|
|
11801
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, type + " filter by " + filter + ": " + JSON.stringify(contentFilters[filter]));
|
|
11789
11802
|
var filterMatched = false;
|
|
11790
11803
|
if (report[filter]) {
|
|
11791
11804
|
var _iterator = _createForOfIteratorHelper(contentFilters[filter]),
|
|
@@ -11793,7 +11806,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11793
11806
|
try {
|
|
11794
11807
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
11795
11808
|
var value = _step.value;
|
|
11796
|
-
statCollector.logger.debug(LOG_PREFIX, filter + ": " + value + " <> " + report[filter]);
|
|
11809
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, filter + ": " + value + " <> " + report[filter]);
|
|
11797
11810
|
if (report[filter] === value) {
|
|
11798
11811
|
filterMatched = true;
|
|
11799
11812
|
break;
|
|
@@ -11811,18 +11824,30 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11811
11824
|
}
|
|
11812
11825
|
}
|
|
11813
11826
|
if (filtersMatched) {
|
|
11814
|
-
statCollector.addHeaders(report, metricsString);
|
|
11827
|
+
currentHeaders = statCollector.addHeaders(currentHeaders, report, metricsString);
|
|
11815
11828
|
}
|
|
11816
11829
|
} else {
|
|
11817
|
-
statCollector.addHeaders(report, metricsString);
|
|
11830
|
+
currentHeaders = statCollector.addHeaders(currentHeaders, report, metricsString);
|
|
11818
11831
|
}
|
|
11819
11832
|
});
|
|
11820
11833
|
} else {
|
|
11821
|
-
statCollector.logger.
|
|
11834
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, "No report type found in RTC stats: '" + type + "'");
|
|
11822
11835
|
}
|
|
11823
11836
|
});
|
|
11824
|
-
|
|
11825
|
-
|
|
11837
|
+
if (currentHeaders !== statCollector.headers) {
|
|
11838
|
+
headersChanged = true;
|
|
11839
|
+
newMetrics = [];
|
|
11840
|
+
currentHeaders.split(",").forEach(function (header) {
|
|
11841
|
+
if (statCollector.headers.indexOf(header) === -1) {
|
|
11842
|
+
newMetrics.push(header);
|
|
11843
|
+
}
|
|
11844
|
+
});
|
|
11845
|
+
if (newMetrics.length) {
|
|
11846
|
+
statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics to be collected: " + newMetrics.toString());
|
|
11847
|
+
}
|
|
11848
|
+
statCollector.headers = currentHeaders;
|
|
11849
|
+
}
|
|
11850
|
+
return _context3.a(2, headersChanged);
|
|
11826
11851
|
}
|
|
11827
11852
|
}, _callee3);
|
|
11828
11853
|
}));
|
|
@@ -11831,24 +11856,20 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11831
11856
|
}
|
|
11832
11857
|
return updateHeaders;
|
|
11833
11858
|
}(),
|
|
11834
|
-
addHeaders: function addHeaders(report, metricsString) {
|
|
11859
|
+
addHeaders: function addHeaders(currentHeaders, report, metricsString) {
|
|
11835
11860
|
if (metricsString) {
|
|
11836
11861
|
var metrics = metricsString.split(",");
|
|
11837
11862
|
metrics.forEach(function (metric) {
|
|
11838
|
-
var metricFound = false;
|
|
11839
11863
|
for (var _i = 0, _Object$keys = Object.keys(report); _i < _Object$keys.length; _i++) {
|
|
11840
11864
|
var key = _Object$keys[_i];
|
|
11841
11865
|
if (metric === key) {
|
|
11842
|
-
|
|
11843
|
-
metricFound = true;
|
|
11866
|
+
currentHeaders = util.addFieldToCsvString(currentHeaders, report.type + "." + report.id + "." + metric, ",");
|
|
11844
11867
|
break;
|
|
11845
11868
|
}
|
|
11846
11869
|
}
|
|
11847
|
-
if (!metricFound) {
|
|
11848
|
-
statCollector.logger.warn(LOG_PREFIX, "No metric found in RTC stats report '" + report.type + "': '" + metric + "'");
|
|
11849
|
-
}
|
|
11850
11870
|
});
|
|
11851
11871
|
}
|
|
11872
|
+
return currentHeaders;
|
|
11852
11873
|
},
|
|
11853
11874
|
updateCompression: function () {
|
|
11854
11875
|
var _updateCompression = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
|
|
@@ -11901,7 +11922,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11901
11922
|
case 2:
|
|
11902
11923
|
_context5.p = 2;
|
|
11903
11924
|
_t2 = _context5.v;
|
|
11904
|
-
statCollector.logger.warn(LOG_PREFIX, "Can't compress metrics data using " + compression + ": " + _t2);
|
|
11925
|
+
statCollector.logger.warn(LOG_PREFIX + "-" + statCollector.id, "Can't compress metrics data using " + compression + ": " + _t2);
|
|
11905
11926
|
statCollector.compression = "none";
|
|
11906
11927
|
case 3:
|
|
11907
11928
|
return _context5.a(2);
|
|
@@ -11922,7 +11943,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11922
11943
|
statCollector.send("webRTCMetricsClientDescription", data);
|
|
11923
11944
|
},
|
|
11924
11945
|
send: function send(message, data) {
|
|
11925
|
-
statCollector.logger.debug(LOG_PREFIX, data);
|
|
11946
|
+
statCollector.logger.debug(LOG_PREFIX + "-" + statCollector.id, data);
|
|
11926
11947
|
if (statCollector.wsConnection.readyState === WebSocket.OPEN) {
|
|
11927
11948
|
statCollector.wsConnection.send(JSON.stringify({
|
|
11928
11949
|
message: message,
|
|
@@ -11945,22 +11966,24 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11945
11966
|
},
|
|
11946
11967
|
collectMetrics: function () {
|
|
11947
11968
|
var _collectMetrics = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {
|
|
11948
|
-
var stats, metrics;
|
|
11969
|
+
var stats, metrics, lostMetrics, headersUpdated;
|
|
11949
11970
|
return _regenerator().w(function (_context6) {
|
|
11950
11971
|
while (1) switch (_context6.n) {
|
|
11951
11972
|
case 0:
|
|
11952
|
-
if (!statCollector.timer) {
|
|
11953
|
-
_context6.n =
|
|
11973
|
+
if (!(statCollector.timer && !statCollector.timerBusy)) {
|
|
11974
|
+
_context6.n = 6;
|
|
11954
11975
|
break;
|
|
11955
11976
|
}
|
|
11977
|
+
// Unfortunately there are no real atomics in JS unless SharedArrayBuffer is used
|
|
11978
|
+
// So we guard the timer callback with a dumb boolean
|
|
11979
|
+
statCollector.timerBusy = true;
|
|
11956
11980
|
_context6.n = 1;
|
|
11957
11981
|
return statCollector.mediaConnection.getWebRTCStats();
|
|
11958
11982
|
case 1:
|
|
11959
11983
|
stats = _context6.v;
|
|
11960
|
-
|
|
11961
|
-
statCollector.metricsBatch = [];
|
|
11962
|
-
}
|
|
11984
|
+
statCollector.startNewBatch();
|
|
11963
11985
|
metrics = [];
|
|
11986
|
+
lostMetrics = [];
|
|
11964
11987
|
statCollector.headers.split(",").forEach(function (header) {
|
|
11965
11988
|
var components = header.split(".");
|
|
11966
11989
|
var descriptor = {
|
|
@@ -11968,7 +11991,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11968
11991
|
id: components[1],
|
|
11969
11992
|
name: components[2]
|
|
11970
11993
|
};
|
|
11971
|
-
var value =
|
|
11994
|
+
var value = null;
|
|
11972
11995
|
if (stats[descriptor.type]) {
|
|
11973
11996
|
var _iterator2 = _createForOfIteratorHelper(stats[descriptor.type]),
|
|
11974
11997
|
_step2;
|
|
@@ -11986,17 +12009,46 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
11986
12009
|
_iterator2.f();
|
|
11987
12010
|
}
|
|
11988
12011
|
}
|
|
11989
|
-
|
|
12012
|
+
if (value === null) {
|
|
12013
|
+
lostMetrics.push(descriptor);
|
|
12014
|
+
} else {
|
|
12015
|
+
metrics.push(value);
|
|
12016
|
+
}
|
|
11990
12017
|
});
|
|
12018
|
+
// Metrics list may change if some metrics are added or some metrics are lost #WCS-4627
|
|
12019
|
+
_context6.n = 2;
|
|
12020
|
+
return statCollector.updateHeaders(stats);
|
|
12021
|
+
case 2:
|
|
12022
|
+
headersUpdated = _context6.v;
|
|
12023
|
+
if (!lostMetrics.length) {
|
|
12024
|
+
_context6.n = 4;
|
|
12025
|
+
break;
|
|
12026
|
+
}
|
|
12027
|
+
statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "Missing metrics: " + JSON.stringify(lostMetrics));
|
|
12028
|
+
// Send metrics already collected and start a new batch with current metrics array to send them later #WCS-4627
|
|
12029
|
+
_context6.n = 3;
|
|
12030
|
+
return statCollector.sendMetrics();
|
|
12031
|
+
case 3:
|
|
12032
|
+
statCollector.startNewBatch(metrics);
|
|
12033
|
+
_context6.n = 5;
|
|
12034
|
+
break;
|
|
12035
|
+
case 4:
|
|
11991
12036
|
statCollector.metricsBatch.push(metrics);
|
|
11992
12037
|
statCollector.batchCount--;
|
|
11993
|
-
if (!(statCollector.batchCount === 0)) {
|
|
11994
|
-
_context6.n =
|
|
12038
|
+
if (!(statCollector.batchCount === 0 || headersUpdated)) {
|
|
12039
|
+
_context6.n = 5;
|
|
11995
12040
|
break;
|
|
11996
12041
|
}
|
|
11997
|
-
_context6.n =
|
|
12042
|
+
_context6.n = 5;
|
|
11998
12043
|
return statCollector.sendMetrics();
|
|
11999
|
-
case
|
|
12044
|
+
case 5:
|
|
12045
|
+
// Check if metrics list changed and send a new headers if needed #WCS-4619
|
|
12046
|
+
if (headersUpdated) {
|
|
12047
|
+
statCollector.logger.info(LOG_PREFIX + "-" + statCollector.id, "RTC metrics list has changed, sending a new metrics description");
|
|
12048
|
+
statCollector.sendHeaders();
|
|
12049
|
+
}
|
|
12050
|
+
statCollector.timerBusy = false;
|
|
12051
|
+
case 6:
|
|
12000
12052
|
return _context6.a(2);
|
|
12001
12053
|
}
|
|
12002
12054
|
}, _callee6);
|
|
@@ -12013,7 +12065,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
12013
12065
|
while (1) switch (_context7.p = _context7.n) {
|
|
12014
12066
|
case 0:
|
|
12015
12067
|
metricsToSend = [];
|
|
12016
|
-
for (i = 0; i < statCollector.metricsBatch.length; i++) {
|
|
12068
|
+
for (i = 0; statCollector.metricsBatch && i < statCollector.metricsBatch.length; i++) {
|
|
12017
12069
|
metricsString = "";
|
|
12018
12070
|
for (j = 0; j < statCollector.metricsBatch[i].length; j++) {
|
|
12019
12071
|
valueString = valueToString(statCollector.metricsBatch[i][j]);
|
|
@@ -12047,7 +12099,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
12047
12099
|
case 3:
|
|
12048
12100
|
_context7.p = 3;
|
|
12049
12101
|
_t3 = _context7.v;
|
|
12050
|
-
statCollector.logger.warn(LOG_PREFIX, "Can't send metrics data using" + statCollector.compression + ": " + _t3);
|
|
12102
|
+
statCollector.logger.warn(LOG_PREFIX + "-" + statCollector.id, "Can't send metrics data using" + statCollector.compression + ": " + _t3);
|
|
12051
12103
|
metricsData = null;
|
|
12052
12104
|
case 4:
|
|
12053
12105
|
_context7.n = 6;
|
|
@@ -12062,8 +12114,7 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
12062
12114
|
};
|
|
12063
12115
|
statCollector.send("webRTCMetricsBatch", data);
|
|
12064
12116
|
}
|
|
12065
|
-
statCollector.
|
|
12066
|
-
statCollector.batchCount = statCollector.description.batchSize;
|
|
12117
|
+
statCollector.cleanBatch();
|
|
12067
12118
|
case 7:
|
|
12068
12119
|
return _context7.a(2);
|
|
12069
12120
|
}
|
|
@@ -12073,7 +12124,21 @@ var StreamStatsCollector = function StreamStatsCollector(description, id, mediaC
|
|
|
12073
12124
|
return _sendMetrics.apply(this, arguments);
|
|
12074
12125
|
}
|
|
12075
12126
|
return sendMetrics;
|
|
12076
|
-
}()
|
|
12127
|
+
}(),
|
|
12128
|
+
startNewBatch: function startNewBatch(metrics) {
|
|
12129
|
+
if (!statCollector.metricsBatch) {
|
|
12130
|
+
statCollector.metricsBatch = [];
|
|
12131
|
+
if (metrics) {
|
|
12132
|
+
statCollector.metricsBatch.push(metrics);
|
|
12133
|
+
}
|
|
12134
|
+
}
|
|
12135
|
+
},
|
|
12136
|
+
cleanBatch: function cleanBatch() {
|
|
12137
|
+
if (statCollector.metricsBatch) {
|
|
12138
|
+
statCollector.metricsBatch = null;
|
|
12139
|
+
statCollector.batchCount = statCollector.description.batchSize;
|
|
12140
|
+
}
|
|
12141
|
+
}
|
|
12077
12142
|
};
|
|
12078
12143
|
return statCollector;
|
|
12079
12144
|
};
|