Включить пользователей приложения WebRtc для загрузки журналов webrtc через javascript
Я видел следующее:
chrome://webrtc-internals
Однако я ищу способ, чтобы пользователи могли нажимать кнопку в веб-приложении для загрузки или - предпочтительно - POST
журналов WebRtc до конечной точки, запеченной в приложении. Идея состоит в том, что я могу позволить нетехническим пользователям обмениваться техническими журналами со мной через нажатие кнопки пользовательского интерфейса.
Как это можно достичь?
Примечание. Это не должно зависеть от Chrome; Хром также будет использоваться, поскольку приложение будет завернуто в Electron.
Ответы
Ответ 1
Это то, что я использовал (заменил нокаут с подчеркиванием или что-то еще):
connectionReport.signalingState = connection.signalingState;
connectionReport.stats = [];
connection.getStats(function (stats) {
const reportCollection = stats.result();
ko.utils.arrayForEach(reportCollection, function (innerReport) {
const statReport = {};
statReport.id = innerReport.id;
statReport.type = innerReport.type;
const keys = innerReport.names();
ko.utils.arrayForEach(keys, function (reportKey) {
statReport[reportKey] = innerReport.stat(reportKey);
})
connectionReport.stats.push(statReport);
});
connectionStats.push(connectionReport);
});
UPDATE:
Похоже, что этот механизм getStats
скоро будет устаревшим.
Ответ 2
Вам нужно написать эквивалент javascript, который отображает все вызовы API RTCPeerConnection. rtcstats.js делает это, но передает все данные на сервер. Если вы замените это поведение на сохранение его в памяти, вы должны быть хорошими.
Ответ 3
Чтение через js-источник chrome://webrtc-internals
, я заметил, что веб-страница использует метод с именем chrome.send()
для отправки сообщений типа chrome.send('enableEventLogRecordings');
для выполнения команд ведения журнала.
Согласно здесь:
chrome.send() - частная функция, доступная только для внутреннего хрома страницы.
поэтому функция изолирована песочницей, что делает невозможным доступ к ней