Я хочу отправить потоковые данные (в виде последовательности ArrayBuffer
) от расширения Chrome на Chrome App, так как Chrome message API (включает в себя chrome.runtime.sendMessage
, postMessage
...) не поддерживает ArrayBuffer
и массивы JS имеют низкую производительность, я должен попробовать другие методы. В конце концов, я нашел WebRTC более RTCDataChannel
, может быть хорошим решением в моем случае.WebRTC: не удалось отправить ArrayBuffer по каналу данных в хроме
мне удалось отправить строку через RTCDataChannel
, но когда я попытался отправить ArrayBuffer
я получил:
code: 19
message: "Failed to execute 'send' on 'RTCDataChannel': Could not send data"
name: "NetworkError"
Кажется, что это не bandwidths limits проблема, так как она не смогла даже если я послал один байт данных , Вот мой код:
pc = new RTCPeerConnection(configuration, { optional: [ { RtpDataChannels: true } ]});
//...
var dataChannel = m.pc.createDataChannel("mydata", {reliable: true});
//...
var ab = new ArrayBuffer(8);
dataChannel.send(ab);
Проверено на OSX 10.10.1, Chrome M40 (Stnble), M42 (Canary); и на Chromebook M40.
Я зарегистрировал ошибку в WebRTC here.
Прогресс в этом вопросе? Сейчас я нахожусь в подобной лодке. Передача данных через. WebRTC в Chrome с использованием строк очень медленный. –
@ NickJennings получил решение, см. Мой ответ. – Imskull